質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

880閲覧

mailmanで会員登録→承認(確認)したいが、管理画面で保留が表示されません。

sasa56563

総合スコア22

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/01/10 01:19

編集2019/01/13 11:45

前提・実現したいこと

mailmanを入会フォームから登録してもらい承認するようにしたいのですが。 これまで管理ページから一括登録して、メール配信をおこなってきましたが、 新たに会員が自分で登録する本来のメーリングリストを作成しようと思っています。 **結果からわかった何が問題になっているかを先に副題として書きます。 mailmanのサーバ移行に際して、生じたPostfixの設定の変更について 送信のtransport_mapsの扱い ということです。**

発生している問題・エラーメッセージ

mailman/listinfoの画面から登録すると直ちに保留状態になったことは表示されるのですが、 管理画面の「未処理の申請を処理」で見ると、「管理データベース 保留中の申請はありません」と出ています。 確認処理に進みません。 mailmanのエラーログを見ると前の状態に Jan 08 03:41:06 2019 mailmanctl(691): PID に到達できません: /var/run/mailman/master-qrunner.pid Jan 08 03:41:06 2019 mailmanctl(691): [Errno 2] No such file or directory: '/var/run/mailman/master-qrunner.pid' Jan 08 03:41:06 2019 mailmanctl(691): qrunner がまだ走ってますか? とあります。 同じディレクトリーにあるsubsribeファイルにはpending(保留)としてメールアドレスが記されています。

該当のソースコード

postfixのmain.cf myhostname = mailing。xxxxx.jp mydomain = xxxx.jp myorigin = /etc/mailname mydestination = $myhostname,localhost.$mydomain, , localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all relay_domains = mailing.xxxxx.jp mailman_destination_recipient_limit = 1 allow_mail_to_commands=alias,forward,include

試したこと

システムの中でやりとりができていないようなので、ネットワークやメール設定に原因があるわけでなく、
qrunnerについてかな思い調べてみるのですが、よくわかりません。
設定はできるだけ初期の状態でやっていますが、なにか大事なところを設定していないといけないのか不明です。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2019/01/10 01:42

mailman のバージョンはいくつですか?
sasa56563

2019/01/10 01:57

使用中の Mailman バージョン: 2.1.15 です。よろしくお願いします。
sasa56563

2019/01/10 02:08

Debian+Mailman バージョン: 2.1.13のシステムもあるのですが、 現象としては全く同じで、なにか基本的事項が不足しているのでしょうか。
sasa56563

2019/01/10 02:20

追加情報です。 すみません。 Debian+Mailman バージョン: 2.1.13のシステムでは会員登録ができました。 メールによる確認がありました。
TaichiYanagiya

2019/01/12 08:20

「reject: RCPT from localhost[::1]: 454 4.7.1」とのこと、main.cf (または postconf -n)の内容を質問文に追記ください。
sasa56563

2019/01/12 09:11

追加した部分としては以下の内容でした。 myhostname = mailing。xxxxx.jp mydomain = xxxx.jp myorigin = /etc/mailname mydestination = $myhostname,localhost.$mydomain, , localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all relay_domains = mailing.xxxxx.jp mailman_destination_recipient_limit = 1 allow_mail_to_commands=alias,forward,include relay関係はいろいろ試したのですが、結果いっしょでしたのでmynetworksのところから 考えました。
guest

回答3

0

ベストアンサー

alias_maps で Mailman に受け渡すには、local 配送にする必要があります。
メーリングリスト用のドメインを relay_domains ではなく、mydestination に設定するといいと思います。

投稿2019/01/12 14:53

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sasa56563

2019/01/12 23:03

relay_domainsはtransportを使った処理の残滓でした。 mydestinationで先にpostfixに取り込まれますので、不要となっていました。削除します。 ログには受け取り自体はできていたようです。 to=<test-join@mailing.xxxxx.jp>, relay=local, delay=0.1, delays=0.01/0.01/0/0.08, dsn=2.0.0, status=sent (delivered to command: /usr/lib/mailman/mail/mailman join test)
sasa56563

2019/01/13 06:51

mailman_destination_recipient_limit = 1 も未定義のようですので削除しました。 再起動することで貯まっていたメールも届くようになりました。
guest

0

原因はmailmanとpostfixの連携がうまくできていなかったためです。
(1)送信を以前(debianシステムで)使っていたtransport_mapsでおこなおうとしたために
標準でサポートされていませんでした。
そこで標準とされるalias_mapsで置き換えました。

(2)これでmailmanがメールを受信するところまではできましたが、送信の段階でrelay denyを起こしました。これはIPv6の問題で
main.cf
inet_protocols = ipv4
とし、再起動することで正常に動作するようになりました。

投稿2019/01/13 06:49

sasa56563

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

未だ完全には解決していませんが、基本的な原因がわかったようです。

正しく動作しているサーバとしていないそれとを比較すると
正しい方はmaillogにsentとされているのに対して、もう一方は記述がありませんでした。

登録はconform確認ファイルをまず登録者に送るようで、その後管理者の確認承認となります。
こう考えるとサーバーの内部処理でなく、一旦postfixを経由するようです。
結局メールの配送が問題で、試しに投稿ファイルを投げると
Error: too many hops (in reply to end of DATA command)
になりました。

2つのサーバは基本的に同じような設定になっているのですが、メールの経由のどこかに
違いがあるのかもしれません。このあたりをもう一度見直します。

投稿2019/01/10 04:35

sasa56563

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2019/01/10 05:13

> Error: too many hops (in reply to end of DATA command) であれば、メールの経路がループ or ピンポンしていますね。
sasa56563

2019/01/10 05:59

ありがとうございます。 ループは中継機器のインタースキャンの設定変更が保存されていなかったためでした。 そこは解決し次はそれでもmailmanのシステムへメールが行きません。 本来はrelay=mailmanとなるところがUser unknown in local recipient tableとなります。 postfixの設定はほとんど同じなのですが、どこが違っているかしらべています。
sasa56563

2019/01/10 06:50

もう少しの処まで来たのですが mailログに warning: connect to transport private/mailman: No such file or directory Jato transport private/mailman: No such file or directoryconnect to transport private/mailman: No such file or directory to=<test@mailing.xxxxxxx.jp>, relay=none, delay=0.03, delays=0.01/0.01/0/0.01, dsn=4.3.0, status=deferred (mail transport unavailable) なにかファイルがなくてmailmanにrelayできていません。 postfixのmain.cfのtransportの記述が変わったのでしょうか。 例が書かれていなかったので別の記述のとおり transport_maps = hash:/etc/postfix/transport として transportファイルはpostmapでtransprt.dbを作成し、 strings transport.db mailman: mailing.xxxxx.jp とちゃんとできているようなのですが。
TaichiYanagiya

2019/01/10 14:58

transport_maps で「mailman:」=UNIX ドメインソケット(/var/spool/postfix/private/mailman)に転送しようとして、失敗しています。 Postfix→Mailman 連携は、一般的には alias_maps (/etc/mailman/aliases) で local: 配送になると思うのですが、なぜ、「mailman:」という専用の配送を使おうとしているのでしょうか。
sasa56563

2019/01/10 23:03

ありがとうございます。光明が見えてきた気がします。 今回10年以上前に作ったmailmanシステム(Debian+postfix 何回か更新)のバックアップ用として CentOS+postfixで作りました。はじめからブラウザーで初期状態を作り、そこに会員データを移行する 形をとりました。 そこで設定し忘れているのが「mailman:」=UNIX ドメインソケットのことのようです。 /etc/postfix/master.cf mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} Debianでは初期設定で記述されているようでCentOSへの移行の際に書き忘れていました。 バーチャルドメインを使う方法としてalias を使う方法とtransport を使う方法とがあるようで、 後者を使っていました。この場合、transportでlocal指定するとユーザがないので受け取れない となるのかと想像するのですが。 一度これでやってみて、うまくいかなければ標準的なaliasを使う方法でやるかなと考えます。 確かにネットで調べてもmailmanとtransportの記述が少ないのに気づきました。
sasa56563

2019/01/11 08:57

調べてみたのですが、CentOS+Postfixには postfix-to-mailman.pyがありませんでした。 TaichiYanagiyaさんがおっしゃっていただいたようにalias_mapによる配送を使う方がいいようです。 さてwebの情報を頼りに修正をしようと思います。 webでは例として管理用メーリングリスト(mailman)作成から入っていますが、 webの管理画面からリストを作成したため、管理用メーリングリスト(mailman)は作っていません。 この場合、alias_mapsを作成し、newaliases、Postfix再起動だけでよろしいのでしょうか。
TaichiYanagiya

2019/01/11 10:04

メーリングリスト "mailman" は必須だったと思います。
sasa56563

2019/01/12 06:02

alias_mapsによる処理に切り替えました。 # vi /etc/postfix/main.cf alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases alias_database = hash:/etc/aliases, hash:/etc/mailman/aliases allow_mail_to_commands = alias,forward,include に変更し、Mailmanのエイリアスファイル( /etc/mail/aliases ) を設定。 # /usr/lib/mailman/bin/genaliases # chmod 666 /etc/mailman/aliases* これでメール制御のリストが作られていましたので 念のためにメーリングリストmailmanを作成し、再起動。 mailmanがメールを受信するところまではできましたが、送信の段階でrelay denyを起こしているようです。いままでPostfixで経験はなかったのですが、 メールログにはNOQUEUE: reject: RCPT from localhost[::1]: 454 4.7.1 と出ています。 帰って、調べ得てみるとIPv6の関係のようです。対策としてはpostfixのmain.cfでIPv6を止めるか mynetworksに[::1]/128とかlocalhostを加えるとかが記されていました。 どれが良いのかわかりませんので、単純にIPv6を止めるのが良いかと思います。 あと少しのところにきているようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問