カテゴリー別アーカイブ: smtp

MailmanをGmailで使う場合の注意点


Mailmanで運用されているメーリングリストをGmailで利用したときに、自分が送信したメールが自分に届かなかったり、Gmailで受信した時に何度も何度も迷惑メールフォルダに振り分けられてしまう問題が発生することがあった。

環境は、さくらVPSでCentOS6。

自分が送信したメールが自分にこない

メールのmessage idがユニークになっていないためらしい。
/usr/local/mailman/Mailman/mm_cfg.py で下記を設定して、Mailman側でmessage idを管理すればオッケー。

1
USE_MAILMAN_MESSAGE_ID = Yes

Mailmanの再起動を忘れずに

1
service mailman restart

何度も迷惑メールフォルダに入ってしまう

最初は、FromをMailmanが書き換えているから不正なメールと扱われているのかな?と思ったので、Fromを書き換えない設定にしてみたけど、それでも迷惑メールフォルダに入ってしまっていた。
そこでGmailの一括送信ガイドラインを読んでみた(最初に読めっ)。
どうやらDKIMやSPFを設定すると解決するっぽい?

つまり、迷惑メールフォルダに振り分けられてしまう理由はMailmanとは関係なくて、smtpの設定が未熟だったみたい。

SPFの設定

まずは簡単に対応できるSPFを試してみた。
これはドメインにSPFレコードを追加して、逆引きを登録するだけで良い。

ドメイン設定

ドメインのレコードにTXTで下記を設定。当然、この記事に書いてあるドメイン(ml.example.com)は適宜自分のものに置き換える必要がある。

1
v=spf1 +a:ml.example.com ~all
逆引き設定

逆引きの設定方法は場合によるけれども、自分の場合はさくらVPSを使っていたのでサーバのコントロールパネルで簡単に設定できた。

これでSPFの設定は終わりなんだけれど、SPFを設定しただけでは解消されなかった・・。
しょうがないのでDKIMも設定することにする。

DKIMの設定

ドメイン側とサーバ(smtp)側で設定が必要で少し面倒、サーバのサービスも増えるし。
まずサーバに opendkimを入れる必要があるのでyumでインストールする。

1
2
3
yum install opendkim # EPELリポジトリが必要
chkconfig —add opendkim
chkconfig opendkim on

鍵の作成

1
2
3
mkdir /etc/opendkim/keys/ml.example.com
opendkim-genkey -D /etc/opendkim/keys/ml.example.com -d ml.example.com -s mymailman
chown opendkim:opendkim /etc/opendkim/keys/ml.example.com/mymailman.*

/etc/opendkim.confの設定
自分の場合は送信にしか使っていないので、Modeはsにした。

1
2
3
4
5
Mode s
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts  refile:/etc/opendkim/TrustedHosts

/etc/opendkim/KeyTableの設定

1
mymailman._domainkey.ml.example.com ml.example.com:mymailman:/etc/opendkim/keys/ml.example.com/mymailman.private

/etc/opendkim/SigningTableの設定

1
*@ml.example.com mymailman._domainkey.ml.example.com

/etc/postfix/main.cfの設定

1
2
3
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

opendkimの起動、postfixの再起動

1
2
service opendkim start
service postfix restart

ドメインにレコードを2つ登録する。
1.mymailman._domainkey.mlというエントリにTXTで/etc/opendkim/keys/ml.example.com/mymailman.txtの内容を書く。
2._adsp._domainkey.mlというエントリにTXTでdkim=unknownを書く。

ここまででDKIMの設定が終了。

Gmailでメーリングリストの送受信を試してみると、迷惑メールフォルダに振り分けられることは無くなったっぽい。
送信されたメールのヘッダをみると、Authentication-Resultsdkim=passがあるのを確認できる。

参考

gmailとmailman
Postfix DKIM 認証 設定メモ(CentOS6.5+OpenDKIM)