質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Q&A

解決済

2回答

4758閲覧

Postfixのログに送信したメールの本文を出力したい

uruban

総合スコア24

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

0グッド

1クリップ

投稿2019/04/22 08:12

編集2019/04/22 08:14

postfixのログから送受信履歴を確認できる方法
上記の質問のコメントにあります、「Subject をログに記録する方法」を参考に、
送信したメールの本文をログに出力したいと思い、以下の設定を追加しました。
main.cf

body_checks = regexp:/etc/postfix/body_checks

/etc/postfix/body_checks

/^Subject: (.*)$/ warn

postfixの停止と起動
postfix stop
postfix start
を行いましたが、メール本文のログは、
/var/log/mail.logに出力されていませんでした。

Postfixのログに送信したメールの本文を出力するために、
必要な設定等ありましたら、ご指摘お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uruban

2019/04/23 05:55

コメントありがとうございます postmap実行しておりません 理解できておらず申しわけありませんが、 postmapの実行とはどのようなコマンドになりますでしょうか?
yut148

2019/04/23 08:48 編集

http://www.postfix-jp.info/trans-2.3/jhtml/postmap.1.html postfixの検索テーブルの作成を行います。 素のテキストファイルで/etc/postfix/body_checksが存在していても意図した動作とならないでしょう。 https://memorva.jp/memo/linux/postfix_spam.php などが参考になるかと思います。 別の方への回答でAmazonSESを御利用されているとの事なので、全くpostmapは役にたたないのではないでしょうか。 AmazonSESの知見はありませんので回答できません。
uruban

2019/04/23 10:13

回答ありがとうございます 一応、当初やりたかったログに本文を表示することはできましたので、 postmapについては、別の機会があれば、検討してみたいと思います
yut148

2019/04/23 11:09

やはりSESはpostmap不要なのですね。 解決できた様でなによりです。
guest

回答2

0

参照されたのは、懐かしい...質問ですね。 約2年前ですか。

さすがにメール本文は、サイズが大きくなるので、ログに書き出すコードはなさそうです。

メール本文を記録したいのであれば、 always_bcc 等を使って、専用メールアドレスに転送しておくのが簡単と思うのですが、ログファイルに記録したい目的は何でしょうか。

投稿2019/04/22 10:46

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uruban

2019/04/23 00:43 編集

回答ありがとうございます Postfix、メール、ログ等のキーワードで検索したところ、 上記の質問がヒットしました メールが送信できているかを確認する際に、実際のメールを見ても良いのですが、 複数の宛先がある場合、それぞれ確認するのは手間だったので、 ログに残せるのであれば、ログを見るだけで送信できたことを確認できるのではないか、 と考えました
CHERRY

2019/04/23 03:01

んー。 配送の確認であれば、既存のログ内容で十分だと思うのですが、本文を記録しないと確認できないと思われる理由は何ですか?
uruban

2019/04/23 06:01

メールが送信されているかという観点と、 そのメールの内容が正しいものであるかという観点を 確認したいと考えているため、本文もログに出力できれば、 確認が簡単ではないかと考えました
guest

0

ベストアンサー

Postfixのログに送信したメールの本文を出力するために、必要な設定等

設定だけでは、そもそもそんなことは出来ないと思います。

やった事はありませんが、受信メールにウイルスチェックを行ってから配信することが出来るはずなので、同じ手段でメールを、何らかのプログラムにフィルターして、そのプログラムで必要に応じてログを書けばいいかと思います。

#追記
質問冒頭の、

postfixのログから送受信履歴を確認できる方法

を見ました。正規表現のグループで出来るとは、リファレンスを見ても分かりませんでした。
/etc/postfix/body_checks

Postfix

1/(.*)/ warn

にしてください。添付ファイルとか送ると、ログが爆発しますが。出来る事は出来ます。

#さらに追記
ログに全文出すのは実用的ではないと思うので、
/etc/postfix/main.cf

Postfix

1always_bcc = hogehoge@localhost

を書いて、Postfixを再起動。

/etc/aliases

Aliases

1hogehoge: "|/bin/sh /home/maillog/fugafuga"

と書いて、newaliasesコマンドを実行。

/home/maillog/fugafuga

sh

1(cat ; echo ) >> /home/maillog/mailbox

などのように設定しておくと、すべての送信メールが/home/maillog/mailboxに、Unixmbox形式で保存されます。

そのまま、mailコマンドで、mail -f /home/maillog/mailboxで読むか、Unixmbox形式をインポートできるメールソフト(Becky!とか、Thunderbird+それ用のアドオン)とかで読めます。

もしくは、何らかのプログラミング言語で、多言語対応Mailライブラリを使って解析するか。

投稿2019/04/22 08:50

編集2019/04/23 06:29
otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uruban

2019/04/22 08:53

回答ありがとうございます >設定だけでは、そもそもそんなことは出来ないと思います Postfixだけでは、無理なのですね 何かしらのプログラムを挟む必要があるということなので、 そちらの検討を進めたいと思います
scsi

2019/04/22 10:12

MUAかMTAを自作しないと無理じゃないですか?そもそもなんでそんな無謀なことをしたいのでしょうか?ログに出す目的はなんでしょう?
uruban

2019/04/23 00:43 編集

scsiさん コメントありがとうございます メールが送信できているかを確認する際に、実際のメールを見ても良いのですが、 複数の宛先がある場合、それぞれ確認するのは手間だったので、 ログに残せるのであれば、ログを見るだけで送信できたことを確認できるのではないか、 と考えました
scsi

2019/04/23 02:55

Urubanさんの環境は分かりませんが、一般的な構成のメールサーバでは、自メールサーバから送信先メールサーバに配送されたことは自メールサーバのmaillogで確認出来ます。
otn

2019/04/23 04:48

質問のリンク先を見ました。 出来ますね。追記しておきます。
uruban

2019/04/23 07:07 編集

scsiさん 後だしとなってしまい申し訳ございませんが、メールはAmazonSESを利用しており、 メールサーバのmaillogは確認できないと思っております otnさん ありがとうございます ログに出力できました ただ文字化けしているので、もう少し調べてみます
otn

2019/04/23 06:20

文字化けじゃなくて、デコードしない生のメールです。 メールソフトは、デコードして読める形にして表示しているので、同様にデコードすれば良いです。
uruban

2019/04/23 09:13

otnさん >文字化けじゃなくて、デコードしない生のメールです。 手順の提示ありがとうございます 一部文字化けしますが、何となく読めるようになりました。 一部が文字化けしてしまう「任艦⇒躄��さい。」
scsi

2019/04/23 10:41

受信サーバのpostfixにrspamdをインストールすれば、web管理画面のhistoryで件名なら表示されますよ。
uruban

2019/04/23 10:52

scsiさん rspamdの情報ありがとうございます 件名は、header_checksの設定でログに出せたので、 ここまでの対応は不要と考えています
scsi

2019/04/23 11:05

デコードした件名が簡単に見たいのかなと思って書いてみました!
uruban

2019/04/23 11:10

scsiさん >デコードした件名が簡単に見たい そういった意図でしたか 確かにそちらのほうが便利ですね ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問