LoginSignup
9
7

More than 5 years have passed since last update.

sendmail tips relay先の冗長化とか再送間隔とか。

Last updated at Posted at 2015-03-20

たまーにしかやらないので忘れないようにする場所。

めっちゃ参考になるところ

http://www.rinneza.com/junya/tech/solaris8_x86/sendmail_8.12.10_cf_setup.html
http://blog.azumakuniyuki.org/2011/08/4-ways-to-relay-email-from-sendmail-to.html
http://www.gadgety.net/shin/tips/unix/sendmail.html

メールゲートウェイを複数指定する

sendmail.mcで指定する場合

:区切りで複数指定すると、左から順に接続を試みます。
全部ダメならmqueueに溜め込み、設定された再送間隔に則ってリトライします。

sendmail.mc
define(`SMART_HOST', `mailer:hostname')dnl

ex. define(`SMART_HOST', `maingateway.ne.jp:subgateway.ne.jp:smtp.sendgrid.ne.jp')dnl

mailertableで指定する場合

FEATURE(`mailertable')で使えるmailertable。
,区切りで複数指定できます。

hoge.ne.jp     smtp:[maingateway.ne.jp,subgateway.ne.jp,smtp.sendgrid.ne.jp]
.hoge.ne.jp     smtp:[maingateway.ne.jp,subgateway.ne.jp,smtp.sendgrid.ne.jp]

特定の宛先以外のメールを送信させない

mailertableで制御する

FEATURE(`mailertable')で使えるmailertable。
*hoge.ne.jp宛のメールのみ送信。残りは/dev/nullに捨てます。

mailertableはsendmail.cfのrelay設定より先に評価されるので、ここで捨てておけば余計なメールが飛ぶことはありません。

hoge.ne.jp     smtp:[maingateway.ne.jp,subgateway.ne.jp,smtp.sendgrid.ne.jp]
.hoge.ne.jp    smtp:[maingateway.ne.jp,subgateway.ne.jp,smtp.sendgrid.ne.jp]
.              local:trash

mailertableとsendmail.cfの評価順

mailertableはsendmail.cfのrelay設定より先に評価されます。

再送間隔

何らかの理由でメールが送信できなかった場合、
mqueueに溜め込み、設定された再送間隔に従って再送信を試みます。
デフォルトでは30分。

sendmail.mc
define(`confMIN_QUEUE_AGE', `30m')dnl
define(`confTO_HOSTSTATUS', `30m')dnl

queueに入ってから一定期間経過したメールは再送を諦め、返送されます。
デフォルトでは5日。
設定値は下記。

sendmail.mc
define(`confTO_QUEUERETURN', `5d')dnl

再送間隔(2)

なんらかの理由によりqueueで配送待ちとなっているメールの再送間隔。
前述したHOSTSTATUSとの優先順位などはわからっていない。←必要になったら調べます。

/etc/sysconfig/sendmail
QUEUE=1h
1mなら1分

テスト

再送間隔

ちゃんと設定通りの間隔でメール再送を行うかを確認するため、
メールをすぐ配信せずにqueueに入れる。
DeliveryMode=qオプションを使えばOK。

echo "5mintest" | sendmail -ODeliveryMode=q atesaki@mail.domain.com

sendmail.mcとsendmail.cf

sendmail.mcはsendmailの設定ファイルの元。
sendmail.mcからm4コマンドでsendmail.cfを作成します。

m4 sendmail.mc > sendmail.cf
出来たsendmail.cfを設定置き場に上書いてから(ex. cp -i sendmail.cf /etc/mail/ )
その後restart
/etc/init.d/sendmail stop
/etc/init.d/sendmail start
9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7