2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

sendmail 再送関連についてまとめ

Posted at

設定ファイルについて

まずは設定について簡単にまとめておきます。

sendmail.cf

sendmailの設定ファイル。sendmail.mcで定義したものをm4コマンドを使ってsendmail.cfへ変換する。

sendmail.mc

sendmail.cfを作成するためのテンプレートファイル。このファイルで定義した設定をm4コマンドを使ってsendmail.cfを作成する。

設定項目 内容
VERSIONID sendmail.cfのバージョン指定
OSTYPE OSの種類
DOMAIN サイト固有の設定(通常はgeneric)
Dw メールサーバーのホスト名
Dm メールサーバーが属するドメイン
MAILER メーラーの定義
define パラメーターの定義
FEATURE 拡張機能の定義     

設定ファイル作成方法

sendmail.mcに記載した内容をm4コマンドで変換します。

変換方法
$ sudo m4 sendmail.mc > sendmail.cf

キューの確認

溜まったキューを確認する方法です。

確認
$ mailq

溜まっているメールは/var/spool/mqueueにあります。

確認
$ ls -l /var/spool/mqueue

ここで確認できるファイル名はメールのQIDと一致します。
なので特定のキューを消したい場合はそのQIDのファイルを削除すればOKです。

削除
$ rm /var/spool/mqueue/<QID>

再送間隔

再送間隔はsendmail.mcまたは/etc/sysconfig/sendmailで設定することができます。

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

・confMIN_QUEUE_AGE
メール送信ができずに/var/spool/mqueue/に溜まった場合の再送信間隔。
単位はm(分)、h(時)、d(日)の3種類。デフォルトは0。

・confTO_HOSTSTATUS
配信失敗した際の再試行間隔。
デフォルトは30分。

この2つで再送間隔を設定できるみたいです。

また、パラメータを設定していると、queueに入って一定期間経過したメールは、再送を諦めて返送されます。

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

・confTO_QUEUERETURN
キューに溜め込んだメールの保存期間。
指定した期間を過ぎるとメールは削除され、送信者へその旨報告。
デフォルトは5日。

/etc/sysconfig/sendmail
QUEUE=1h

キューの再送

sendmailコマンドに-qオプションをつけて実行。
-vも追加することで詳細表示。

再送
$ sendmail -q -v
オプション 説明
-q メッセージ処理間隔
-v 詳細モード

強制再送を行いたい場合は以下のコマンドを実行します。

再送
$ sendmail -q -v -OTimeout.queuereturn=0 -OTimeout.connect=5s -OTimeout.initial=5s -OTimeout.aconnect=5s -OTimeout.mail=5s -OTimeout.helo=5s -OTimeout.rcpt=5s -OTimeout.command=5s

-Oオプションを利用することでsendmail.mc内のパラメータとは違う値で実行できます。
ついでなのでsendmail.mcでのパラメータと一緒に表にしておきました。

sendmail.mc -Oオプション=(デフォルト) 説明
confTO_QUEUERETURN Timeout.queuereturn=5d 配送エラーでメッセージを返すまでの期間
confTO_CONNECT Timeout.connect=0 初回接続が完了するまでの待ち時間
confTO_INITIAL Timeout.initial=5m 初回接続タイムアウト待ち時間
confTO_ACONNECT Timeout.aconnect=0 TCPコネクト待ち時間を5秒
confTO_HELO Timeout.helo=5m HELOまたはELOコマンドのレスポンス待ち時間
confTO_RCPT Timeout.rcpt=1h RCPTコマンドのタイムアウト待ち時間
confTO_COMMAND Timeout.command=1h SMTPコマンドのタイムアウト待ち時間

参考
http://www.rinneza.com/junya/tech/solaris8_x86/sendmail_8.12.10_cf_setup.html
https://www.sendmail.org/~ca/email/doc8.12/cf/m4/tweaking_config.html
https://www.nic.ad.jp/ja/materials/iw/1997/proceedings/tutorial3/6sendmail-adm.pdf
https://tanaka.sakura.ad.jp/home/sendmail/intro-3.html

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?