web-dev-qa-db-ja.com

PHP(sendmail?)からmail()で送信されたメールのログを取得します

一部のサーバーが変更された後、PHP=構成が無効になり、クライアントの大きなメーリングリストが約4,000以上のアドレスで部分的にタイムアウトしました。重複したメールをできるだけ送信しないようにしたいので、元のメーリングリストがあります。

メールはsendmailを使用するPHPのmail()関数を使用して送信されました。これはEximを使用していることを示しています。私はコマンドを見てきました:

sendmail -bp

送信されたように見えるメールのリストが表示されます。このリストはそれほど大きくなく、正確である可能性があります(100通程度のメールを送信しただけでスクリプトがタイムアウトしたことを意味します)

このリスティングを取得するには、sendmail -bpが最善の方法ですか?

編集:mail.log内または/var/log/mail.log経由でlocate mail.logファイルを見つけることができませんが、WHMにはこれに関する情報があるようです。

13
Kristopher Ives

Debianベースのシステムでは、eximはデータを/var/log/exim4/mainlogに記録します。

eximstats ツールは、そのログファイルから有用な情報を解析および選別するのに役立ちます。

11
Zoredache

sendmail -bp(およびmailq)はメールキューのみをリストします。キューに入れられたがまだ送信されていないメッセージです。正常に配信されたメッセージは含まれません。

あなたはチェックする必要があります/var/log/mail.log(およびその他のログファイル)-ほとんどの場合、すべての転送の記録があります。

6
user1686

php 5.3.0では、不正なスクリプトを簡単に追跡できる2つの設定が追加されました。

mail.add_x_header
mail.log

http://php.net/manual/en/mail.configuration.php

3
minusf