以下の記述は特に断りがなければCentOS 5.9環境でのものです。 sendmailについてはこちら。
Postfixとsendmailを同一システム上に共存させることはできるが、ここではsendmailをやめてPostfixに置き換えることを想定。 2009/9/8現在、安定版最新のバージョンは2.6のよう。yumで入れると少し前の2.3。
sendmailのキューが空であることを確認する。もし残っているなら削除するなどの措置を取る。場所は通常/var/spool/mqueue
。詳しくはsendmail:メッセージキュー参照。
次にsendmailデーモンの停止。
shell> sudo /etc/rc.d/init.d/sendmail stop sm-client を停止中: [ OK ] sendmail を停止中: [ OK ]
次にsendmailデーモンを自動起動しないようにする→UNIX関係:自動起動の設定参照。
aliases
(通常/etc/aliases
)を除くsendmailの全コンポーネントとその所在ディレクトリを削除する。パッケージマネージャを持つシステムでは、それを使えばよい。依存性の問題が発生する場合、依存性を無視して削除して構わない(他のプログラムが依存するコンポーネントが全部Postfixに組み込まれているため)。
shell> sudo yum remove sendmail* (中略) Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: sendmail i386 8.13.8-2.el5 installed 1.3 M sendmail-cf i386 8.13.8-2.el5 installed 924 k Transaction Summary ================================================================================ Install 0 Package(s) Update 0 Package(s) Remove 2 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : sendmail [1/2] 警告: /var/log/mail/statistics は /var/log/mail/statistics.rpmsave として保存されした。 Erasing : sendmail-cf [2/2] Removed: sendmail.i386 0:8.13.8-2.el5 sendmail-cf.i386 0:8.13.8-2.el5 Complete!
RPMパッケージを用いてインストールする場合。
shell> yum list | grep postfix ←RPMリポジトリチェック postfix.i386 2:2.3.3-2.1.el5_2 base →baseにあって、まだインストールされていない postfix-pflogsumm.i386 2:2.3.3-2.1.el5_2 base shell> sudo yum install postfix ←インストール(管理者権限必要、ないなら左記のようにsudoを付ける) Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile (中略) Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: postfix i386 2:2.3.3-2.1.el5_2 base 3.6 M Transaction Summary ================================================================================ Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 3.6 M Is this ok [y/N]: y (中略) Installed: postfix.i386 2:2.3.3-2.1.el5_2 Complete!
Postfixデーモンが動作している場合、設定を変更したらpostfix reload
コマンド(/usr/sbin/postfix reload
)を実行して設定を反映させる(管理者権限必要、必要に応じてsudo
を前に付ける)。
エイリアスの設定は/etc/aliases
ファイル。設定を変更したらnewaliases
コマンド(/usr/bin/newaliases
)を実行して設定を反映させる(管理者権限必要)。
もし/etc/aliases.db
が/etc/aliases
より古かった場合、メールログ(/var/log/maillog
)に以下のようなメッセージが出力される。この場合も同様にnewaliases
を実行する。
Apr 1 10:00:00 server sendmail[11111]: warning: database /etc/aliases.db is older than source file /etc/aliases
設定に関する詳細は設定の章参照。
Postfixがインストールされていれば既に /etc/rc.d/init.d/postfix
というスクリプトは存在するよう。手動で起動するには「(sudo) /etc/rc.d/init.d/postfix start
」。自動起動するには、chkconfig
コマンド等で自動起動を有効にする(→自動起動の設定)。
Postfixの設定ファイルは/etc/postfix
以下にある。メインの設定はmain.cf
。
【例】 soft_bounce = no
example/chroot-setup
ファイルも参照下さい。
【例】 queue_directory = /var/spool/postfix
【例】 command_directory = /usr/sbin
master.cf
ファイルにプログラムの一覧が記載されています)の位置を指定します。このディレクトリの所有者はrootでなければなりません。
【例】 daemon_directory = /usr/libexec/postfix
【例】 mail_owner = postfix
【例】 default_privs = nobody
gethostname()
で得られる完全修飾ドメイン名(Fully Qualified Domain Name)が用いられます。$myhostname
は他に多くの設定パラメータで既定値として用いられています。
【例】 myhostname = host.domain.tld
$myhostname
から最初の部分を取り除いた値が用いられます。$mydomain
は他に多くの設定パラメータで既定値として用いられています。
【例】 mydomain = domain.tld
$myhostname
を後に付加するというものです。小さなサイトの場合はこれでいいでしょう。もし複数のマシンが動作しているドメイン内の場合、(1)$mydomain
に変更する、(2)各ユーザをuser@that.users.mailhost
に対応させるドメイン全体のエイリアスデータベースを構築する、のどちらかを行うのがいいでしょう。
既定値 | $myhostname |
【例】 myorigin = $myhostname →自身から送信されたものとする myorigin = $mydomain →ドメインのDNSに問い合わせ、MXレコードに記載されたサーバから送信されたものとする
user@[IPアドレス]
という書式でのメール配信も制御します。プロキシまたはネットワークアドレスのつけかえ(NAT)を通して転送されているネットワークアドレスに関してはproxy_interfaces
パラメータも参照して下さい。
【例】 inet_interfaces = all inet_interfaces = $myhostname inet_interfaces = $myhostname, localhost inet_interfaces = localhost
【例】 inet_interfaces = 1.2.3.4
【例】 mydestination = $myhostname, localhost.$mydomain, localhost
/etc/passwd
と/etc/aliases
、あるいはそれらの互換のものを参照するUNIX互換の配信エージェントとなります。
local_recipient_maps =
を記述(空に設定)すればよい。既定の設定はローカル配信にPostfixのローカル配信エージェントを使っていると仮定しています。以下のような場合には、local_recipient_maps の設定を更新する必要があります。
/etc/passwd
, /etc/aliases
, $virtual_alias_map
の各ファイル以外で定義している場合(例:$virtual_mailbox_maps ファイルで指定)。
master.cf
を編集し、ローカル配信エージェントの設定を変更した場合。
main.cf
を編集し、local_transportの設定を変更した場合。
LOCAL_RECIPIENT_README
ファイルに記述されています。
【例】 local_recipient_maps = unix:passwd.byname $alias_maps local_recipient_maps = proxy:unix:passwd.byname $alias_maps local_recipient_maps =
【例】 unknown_local_recipient_reject_code = 550
man 5 postconf
も参照して下さい。この指定があるとmynetwork_style
の設定は無視されます。
【例】 mynetworks = 168.100.189.0/28, 127.0.0.0/8 mynetworks = $config_directory/mynetworks mynetworks = hash:/etc/postfix/network_table
subnet
)です。class
と指定すればIPアドレスクラスに応じた同一ネットワークを信頼します。host
と指定するとローカルのみを信頼します。mynetwork
の設定があると、ここでの設定は無視されます。
【例】 mynetworks_style = class mynetworks_style = subnet mynetworks_style = host
man 5 postconf
を参照のこと。既定の動作は
$mynetworks
にマッチするIPアドレス)からのメールはあらゆる宛先に対して許可mydestination
の値です。
これに加え、既定では以下の最終宛先へのメールは受け入れます。
$inet_interfaces
(または$proxy_interfaces)にマッチする宛先man 5 postconf
にあるpermit_mx_backup
制限に関する記述も参照のこと。
【例】 relay_domains = $mydestination
【例】 relayhost = $mydomain
postalias /etc/aliases
」を(またはシステムがメールエイリアスファイルを収めているものは何でも)実行して下さい。または単に「newaliases
」を実行して必要なDBMまたはDBのファイルを作成して下さい。
変更が反映されるまでしばらくかかるでしょう。「postfix reload
」コマンドを実行して遅延状態を解消して下さい。
【例】 alias_maps = hash:/etc/aliases alias_maps = hash:/etc/aliases, nis:mail.aliases
alias_database
はnewaliases
やsendmail -bi
で構築されたエイリアスデータベースを指定します。
【例】 alias_database = hash:/etc/aliases
postconf
コマンドは現在設定されているパラメータの値を表示したり、変更したりする。
postconf オプション -c 設定ファイル パラメータ ...
-n
原文:POSTSUPER(1)
postsuper
コマンドはPostfixメールキューの管理を行うコマンド。このコマンドの実行は管理者(root)に限定されている。メールキュー一覧の表示やメールキューの一掃など権限のないキューの操作についてはpostqueue
コマンドの説明も参照のこと。
このコマンドはデフォルトで-sと-pのコマンドラインオプションによって指定された操作を実行する。対象となるのはメールファイルがあるincoming、active、deferredの各ディレクトリと、ログファイルがあるbounce、defer、trace、flushの各ディレクトリである。
書式は以下の通り。
postsuper オプション ディレクトリ名 ディレクトリ名2...
-c 設定ファイルのあるディレクトリ
main.cf
」を用いる。後述のMAIL_CONFIG環境設定も参照のこと。
-d メールキューのID 対象ステータス
指定されたキューIDを持つメッセージ1件をメールキューから削除する。対象ステータスを指定しなかった場合の既定対象はhold、incoming、active、deferred。
キューIDに「-」を指定した場合は、キューIDを標準入力から読み込む。例えば、以下のコマンドにより、user@example.com だけが宛先となっているメールを全て削除することができる。
span class="prompt"># mailq | tail +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } \ # $7=sender, $8=recipient1, $9=recipient2 \ { if ($8 == "user@example.com" && $9 == "") \ print $1 } ' | tr -d '*!' | postsuper -d -
キューIDに「ALL」を指定すると全てのメッセージを削除する。例えば、「postsuper -d ALL deferred
」は、ステータスがdeferredとなっているメールを全て削除する。なお安全のため、ALLは大文字で指定しないと働かないようになっている。
警告:PostfixのキューIDは再利用されるので、Postfix稼働中にpostsuperコマンドを実行すると誤ったメッセージを削除してしまう可能性があります。以下にどのような場合にこの問題が発生するのか説明します。
-h メールキューID 対象ステータス
指定したキューIDのメールが送信されないよう、メールを保留状態にする。つまり、指定したキューIDのメールをholdキューに移動する。キュー検索対象ステータスが指定されていない場合の既定値はincoming、active、deferred。
キューIDに「-」を指定した場合は、キューIDを標準入力から読み込む。
キューIDに「ALL」を指定すると全てのメッセージを保留状態にする。
例えば、「postsuper -h ALL deferred
」は、ステータスがdeferred(遅延状態)となっているメールを全て保留状態する。なお安全のため、ALLは大文字で指定しないと働かないようになっている。
-H メールキューID 対象ステータス
指定したキューIDのメールをdeferred状態にする。
-r メールキューID 対象ステータス
指定したキューIDのメールを再びキューに入れる(requeueする)。
postqueue -v -c 設定ファイルのあるディレクトリ オプション
-f
sendmail -q
」に相当する動作を実装したものです。
-p
sendmail様式のキュー一覧を出力する。このオプションはsendmailのmailqコマンドに相当する動作を、Postfix showqデーモンに問い合わせることで実現したものです。
-s サイト
指定したサイトへのメールをすぐ送信するようスケジュール設定する。数値(IPアドレス)でサイトを指定する時は、RFC 2821に従った有効な値で指定し、値は[ ]で囲む必要があります。指定するサイトは「fast flush」サービスが利用可能なサイトである必要があります。「fast flush」サービスについて詳しくは flush(8) を参照して下さい。
このオプションは「sendmail -qRサイト
」コマンドを、flushデーモンに問い合わせることで実現したものです。
-v
デバッグを行うため、より詳細なログ出力を行うようにする。複数の-v
を指定することで、出力内容の詳細さが増す。Postfix 2.3 では管理者だけがこのオプションを指定することができます。
Sendmail互換インタフェースがあり、Sendmailと同様に使える。パスが通っていない場所にあるならフルパスでコマンドを指定(例:/usr/sbin/sendmail
)。詳細はsendmailコマンド参照。
以下に例を示す[8]
メール送信先サーバjushin(192.168.0.1)の25番ポートにtelnetで接続する [sento@soushin ~]$ telnet jushin.sample.org 25 Trying 192.168.0.1... Connected to jushin.sample.org (192.168.0.1). Escape character is '^]'. 220 jushin.sample.org ESMTP Postfix ↑応答ステータス220ならOK メールサーバにご挨拶してみる HELO jushin.sample.org 250 jushin.sample.org 送信元を指定 MAIL FROM:<sento@soushin.sample.org> 250 2.1.0 Ok 宛先を指定 MAIL FROM:<suitan@jushin.sample.org> 250 2.1.5 Ok 本文 DATA Subject: Hello # 1行目は「Subject:」で始め、件名を入力 How are you? # ここからが本当の本文 . # ピリオドだけを入力して改行すると入力終了となる 250 2.0.0 Ok: queued as AFF1572D20 QUIT 221 2.0.0 Bye Connection closed by foreign host. You have new mail in /var/spool/mail/suitan [suitan@jushin ~]$ cat /var/spool/mail/suitan ... From sento@soushin.sample.org Fri Feb 15 15:40:41 2013 Return-Path: <sento@soushin.sample.org> X-Original-To: suitan@jushin.sample.org Delivered-To: suitan@jushin.sample.org Received: from jushin.sample.org (soushin.sample.org [192.168.0.2]) by jushin.sample.org (Postfix) with SMTP id AFF1572D20 for <suitan@jushin.sample.org>; Fri, 15 Feb 2013 15:39:40 +0900 (JST) Subject: Hello Message-Id: <20130215063947.AFF1572D20@jushin.sample.org> Date: Fri, 15 Feb 2013 15:39:40 +0900 (JST) From: sento@soushin.sample.org To: undisclosed-recipients:; How are you?
以下は暫定対処の事例。
[sento@soushin ~]$ mail sento@jusyin.yurukyara.org Subject: Hello Hello world. Ctrl + D Cc: [sento@soushin ~]$ sudo cat /var/log/maillog Password: ... Feb 6 18:00:00 soushin postfix/smtp[23456]: 5A1801C878F: to=<sento@jusyin.yurukyara.org>, relay=jusyin.yurukyara.org[1.2.3.4]:25, delay=0.04, delays=0.01/0.01/0.01/0.01, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 6094B6F80D) Feb 6 18:00:00 soushin postfix/qmgr[31994]: 5A1801C878F: removed ... ↑送信には成功している [root@jusyin ~]# cat /var/log/maillog ... Feb 6 18:00:00 jusyin postfix/local[12345]: A24DF6F804: to=<sento@jusyin.yurukyara.org>, relay=local, delay=0.31, delays=0.01/0/0/0.3, dsn=5.2.0, status=bounced (can't create user output file. Command output: procmail: Couldn't create "/var/mail/sento" ) ... ↑出力先ファイルが作れないとのエラー [root@jusyin ~]# ls -l /var/spool/mail -rw-rw---- 1 manto mail 0 2月 6 18:09 manto -rw-rw---- 1 namu mail 30565 4月 13 2010 namu -rw-rw---- 1 hikonyan mail 0 3月 16 2010 hikonyan [root@jusyin ~]# touch /var/spool/mail/sento [root@jusyin ~]# chown sento:mail /var/spool/mail/sento -rw-rw---- 1 sento mail 0 11月 4 2009 sento -rw-rw---- 1 manto mail 0 2月 6 18:09 manto -rw-rw---- 1 namu mail 30565 4月 13 2010 namu -rw-rw---- 1 hikonyan mail 0 3月 16 2010 hikonyan [sento@soushin ~]$ mail sento@jusyin.yurukyara.org [root@jusyin ~]# cat /var/log/maillog Feb 6 18:00:01 jusyin postfix/local[30621]: 6094B6F80D: to=<sento@jusyin.yurukyara.org>, relay=local, delay=0.2, delays=0.01/0.01/0/0.19, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail -a "$EXTENSION") ↑今度は受信成功
修正前のメールログ
【送信側 192.168.0.2】soushin:/var/log/maillog Feb 13 10:01:01 soushin sendmail[9682]: r1D11117009682: from=root, size=1006, class=0, nrcpts=1, msgid=<201302130101.r1D11117009682@soushin.sample.org>, relay=root@localhost Feb 13 10:01:01 soushin sendmail[9682]: r1D11117009682: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=31006, relay=[192.168.0.1] [192.168.0.1], dsn=2.0.0, stat=Sent (Ok: queued as C429A71B8E) ↑送信には成功している 【受信側 192.168.0.1】jushin:/var/log/maillog Feb 13 10:01:01 jushin postfix/smtpd[14520]: connect from soushin.sample.org[192.168.0.2] Feb 13 10:01:01 jushin postfix/smtpd[14520]: C429A71B8E: client=soushin.sample.org[192.168.0.2] Feb 13 10:01:01 jushin postfix/cleanup[14523]: C429A71B8E: message-id=<201302130101.r1D11117009682@soushin.sample.org> Feb 13 10:01:01 jushin postfix/qmgr[11384]: C429A71B8E: from=<root@soushin.sample.org>, size=1488, nrcpt=1 (queue active) Feb 13 10:01:01 jushin postfix/smtpd[14520]: disconnect from soushin.sample.org[192.168.0.2] Feb 13 10:01:01 jushin postfix/qmgr[11384]: C429A71B8E: to=<root@soushin.sample.org>, relay=none, delay=0.05, delays=0.05/0.01/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to soushin.sample.org[192.168.0.2]: No route to host) ↑配信保留
iptables設定の修正
[root@soushin ~]# /etc/init.d/iptables status | less ... Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ... [root@soushin ~]# iptables -I RH-Firewall-1-INPUT 4 -p tcp -s 133.1.158.151 --dport 25 -j ACCEPT [root@soushin ~]# /etc/init.d/iptables status | less ... Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ACCEPT tcp -- 192.168.0.1 0.0.0.0/0 tcp dpt:25 ←この項目を追加 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ...
修正後のメールログ
【送信側 192.168.0.2】soushin:/var/log/maillog Feb 13 10:26:38 soushin sendmail[9931]: r1D1QccQ009931: from=root, size=97, class=0, nrcpts=1, msgid=<201302130126.r1D1QccQ009931@soushin.sample.org>, relay=root@localhost Feb 13 10:26:38 soushin sendmail[9931]: r1D1QccQ009931: to=root@jushin.sample.org, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30097, relay=[192.168.0.1] [192.168.0.1], dsn=2.0.0, stat=Sent (Ok: queued as 3AED56F876) ↑今回も送信成功 【受信側 192.168.0.1】jushin:/var/log/maillog Feb 13 10:26:38 jushin postfix/smtpd[16172]: connect from soushin.sample.org[192.168.0.2] Feb 13 10:26:38 jushin postfix/smtpd[16172]: 3AED56F876: client=soushin.sample.org[192.168.0.2] Feb 13 10:26:38 jushin postfix/cleanup[16175]: 3AED56F876: message-id=<201302130126.r1D1QccQ009931@soushin.sample.org> Feb 13 10:26:38 jushin postfix/qmgr[11384]: 3AED56F876: from=<root@soushin.sample.org>, size=587, nrcpt=1 (queue active) Feb 13 10:26:38 jushin postfix/smtpd[16172]: disconnect from soushin.sample.org[192.168.0.2] Feb 13 10:26:38 jushin postfix/local[16176]: 3AED56F876: to=<root@jushin.sample.org>, relay=local, delay=0.05, delays=0.05/0/0/0, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail -a "$EXTENSION") ↑今回は配信も成功
システムがローカルのrootユーザから自分自身にメールを送り、bounced状態で溜まってしまっていたため、メールログに表題のような記録が残っていた。Postfixの設定(/etc/postfix/main.cf
)でmydestinationに$mydomainが抜けていたためと判明[9]。修正したら解消。
【修正前】
mydestination = $myhostname, localhost.$mydomain, localhost
【修正後】
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
$HOME/.forward
に転送先メールアドレスを記しても転送されず、メールログに「.forward: Permission denied」という記録があった場合、当該ユーザのホームディレクトリが当該ユーザにしか読めないアクセス権(700)に設定されていることが要因として考えられる(.forwardファイルに他人が読めるアクセス権を設定していたとしても)。この場合、他のユーザも読めるアクセス権(755など)を設定すれば回避できる[10]。
前者はSymantec社のデータベース12に送信元メールサーバのIPが登録されていないかを調べ、登録されていなかったら前者が原因ではないと切り分けられる。登録されていたら...改善すべきところは改善して、ごめんなさいって言ってデータベースを直してもらうのかな?
後者は送信元メールサーバのIPアドレスがDNS逆引きできる(IPアドレスをDNSサーバに問い合わせたらホスト名が返ってくる)ようにする。もしかしたら、そのホスト名がそのドメインのメールサーバ(MXレコード、SPFレコード)に載っていることも確認されているかもしれない。
mail1は正引きできるが逆引きできない [root@mail1 ~]# dig mail1.foo.org ; <<>> DiG 9.8.3-P1 <<>> mail1.foo.org ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14785 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;mail1.foo.org. IN A ;; ANSWER SECTION: ;mail1.foo.org. 21600 IN A 1.2.3.4 ;; Query time: 256 msec ;; SERVER: 172.29.0.11#53(172.29.0.11) ;; WHEN: Tue Sep 26 11:09:25 2017 ;; MSG SIZE rcvd: 53 [root@mail1 ~]# dig -x 1.2.3.4 ; <<>> DiG 9.8.3-P1 <<>> -x 1.2.3.4 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 2546 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;4.3.2.1.in-addr.arpa. IN PTR ;; AUTHORITY SECTION: 3.2.1.in-addr.arpa. 10800 IN SOA ns1.foo.org. root.ns1.foo.org. 2017051701 3600 300 3600000 86400 ;; Query time: 12 msec ;; SERVER: 172.29.0.11#53(172.29.0.11) ;; WHEN: Tue Sep 26 11:08:20 2017 ;; MSG SIZE rcvd: 111 メールキューを確認、1件未配信 [root@mail1 ~]# mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 0123456789 1000 Sat Sep 23 02:30:00 admin@foo.org (host dmz-mailsec-scanner-6.mit.edu[18.7.68.35] refused to talk to me: 554 5.7.1 Delivery not authorized) example@mit.edu -- 1 Kbytes in 1 Request. ディレクトリ確認 [root@mail1 ~]# find /var/spool/postfix -name 0123456789 /var/spool/postfix/defer/0/0123456789 /var/spool/postfix/deferred/0/0123456789 mail2は正引き逆引きともできる [root@mail1 ~]# dig mail2.foo.org ; <<>> DiG 9.8.3-P1 <<>> mail2.foo.org ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14785 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;mail2.foo.org. IN A ;; ANSWER SECTION: ;mail2.foo.org. 21600 IN A 1.2.3.5 ;; Query time: 256 msec ;; SERVER: 172.29.0.11#53(172.29.0.11) ;; WHEN: Tue Sep 26 11:09:25 2017 ;; MSG SIZE rcvd: 53 [root@mail1 ~]# dig -x 1.2.3.5 ; <<>> DiG 9.8.3-P1 <<>> -x 1.2.3.5 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63328 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;5.3.2.1.in-addr.arpa. IN PTR ;; AUTHORITY SECTION: 5.3.2.1.in-addr.arpa. 7487 IN PTR mail2.foo.org. ;; Query time: 12 msec ;; SERVER: 172.29.0.11#53(172.29.0.11) ;; WHEN: Tue Sep 26 11:19:23 2017 ;; MSG SIZE rcvd: 87 メールキューをコピー [root@mail2 ~]# rsync -az root@mail1:/var/spool/postfix/defer/0/0123456789 /var/spool/postfix/defer/0/ [root@mail2 ~]# rsync -az root@mail1:/var/spool/postfix/deferred/0/0123456789 /var/spool/postfix/deferred/0/ 作成される上位ディレクトリの所有者はpostfix:postfix、アクセス権は700(所有者のみ読み書き実行可能)に設定 [root@mail2 ~]# chown postfix:postfix /var/spool/postfix/defer{,red}/0 [root@mail2 ~]# chmod 700 /var/spool/postfix/defer{,red}/0 メールキューに入れる [root@mail2 ~]# postsuper -r 0123456789 postsuper: 0123456789: requeued postsuper: Requeued: 1 message メールキュー確認 [root@mail2 ~]# mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 0123456789* 1000 Sat Sep 23 02:30:00 admin@foo.org example@mit.edu -- 1 Kbytes in 1 Request. [root@mail2 ~]# mailq Mail queue is empty