share facebook facebook2 twitter menu hatena pocket slack

2013.03.29 FRI

すべての送受信メールをPostfixで取得してみる

鈴木 宏康

WRITTEN BY鈴木 宏康

表題の方法ですが、always_bccの設定で可能です。
(BCCを設定し受信する形となります)
下記のように、すべての送受信メールを受信するメールアドレスを指定し、Postfixをリスタートします。


# cat /etc/postfix/main.cf
...
always_bcc = zzz@suz-lab.com

まずは送信のテストです。
次のようにメールを送信してみます。


# mail yyy@cloudpack.jp
Subject: Send Test
Send Test
.
EOT

そうすると、下記のようにログが出力されます。


... postfix/pickup[3674]: ...: uid=500 from=
... postfix/cleanup[3697]: ...: message-id=<...@...>
... postfix/qmgr[2379]: ...: from=, size=553, nrcpt=2 (queue active)
... postfix/smtp[3703]: ...: to=, relay=..., delay=1.1, delays=0.04/0.02/0.33/0.72, dsn=2.0.0, status=sent (...)
... postfix/smtp[3706]: ...: to=, relay=..., delay=1.1, delays=0.04/0.03/0.39/0.66, dsn=2.0.0, status=sent (...)
... postfix/qmgr[2379]: ...: removed

そして、always_bccで設定したメールアドレスにも送信されていることが確認できます。

次に受信のテストです。
下記のように送信して(受信させて)みます。


# cat smtp.txt
HELO localhost
MAIL FROM: yyy@cloudpack.jp
RCPT TO: xxx@xxx.xxx.xxx
DATA
SUBJECT: Recieve Test

Recieve Test
.
QUIT
# nc xxx.xxx.xxx.xxx 25 < smtp.txt

そうすると、下記のようにログが出力されます。


... postfix/smtpd[3717]: connect from unknown[...]
... postfix/smtpd[3717]: improper command pipelining after HELO from unknown[...]
... postfix/smtpd[3717]: ...: client=unknown[...]
... postfix/cleanup[3782]: ...: message-id=<...>
... postfix/qmgr[2379]: ...: from=, size=492, nrcpt=2 (queue active)
... postfix/smtpd[3717]: disconnect from unknown[...]
... postfix/local[3785]: ...: to=, relay=local, delay=0.08, delays=0.04/0.03/0/0.01, dsn=2.0.0, status=sent (...)
... postfix/smtp[3786]: ...: to=, relay=..., delay=1.3, delays=0.04/0.03/0.47/0.76, dsn=2.0.0, status=sent (...)
... postfix/qmgr[2379]: ...: removed

そして、always_bccで設定したメールアドレスにも送信されていることが確認できます。

上記のように、送受信でメールが取得できていることが確認できました。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。