使用後綴日誌追蹤電子郵件日誌以提高電子郵件送達能力

使用後綴日誌追蹤電子郵件日誌以提高電子郵件送達能力

我正在運行 Rails 應用程序,它使用 postfix 作為中繼發送電子郵件。這裡是流量

Rails -> Resque 工作人員 -> Postfix -> SES -> 發送電子郵件給客戶

我的問題是我想找到rails和postfix日誌之間的關係,以確保甚至沒有一封電子郵件丟失並正確發送給收件人。

例如,如果 Rails 日誌顯示,電子郵件將發送至“[電子郵件受保護]「然後我可以檢查電子郵件發送到的日誌[電子郵件受保護],我也想在 postfix 中檢查同一封電子郵件。當然,它會有一個條目,但要精確且準確地查找該特定電子郵件是否是使用 postifx 發送的?就像收件者可以發送 100 封電子郵件至[電子郵件受保護],或者可能是 50,具有不同的時間間隔,那麼我如何添加任何特殊的 TAG、ID 或 Rails 應用程式中的任何內容,以便我可以在 postifx 日誌中追蹤它?

我希望問題很清楚。

謝謝

答案1

如果您的 Rails 使用 SMTP 連接到 Postfix,您會對250回應感興趣:

250 2.0.0 Ok: queued as 41F1A40412

如果你讓 Rails 記錄這個 ID,那麼很容易從 Postfix 日誌中找到它後來發生的情況:

$ grep 41F1A40412 /var/log/mail.log

postfix/smtpd[1900]: 41F1A40412: client=localhost[127.0.0.1]
postfix/cleanup[1903]: 41F1A40412: message-id=<[email protected]>
postfix/qmgr[29213]: 41F1A40412: from=<[email protected]>, size=299, nrcpt=1 (queue active)
postfix/smtp[1904]: 41F1A40412: to=<[email protected]>, 
    relay=example.net[198.51.100.51]:25, delay=14, delays=13/0.07/0.26/0.71, dsn=2.0.0, 
    status=sent (250 2.0.0 OK 5D47140412)
postfix/qmgr[29213]: 41F1A40412: removed

至少該deliver.now!方法顯示此回應,因為它強制立即發送。如果使用正常方法沒有發生這種情況,deliver可能是因為 SMTP 在設計上對於誰負責傳遞訊息是明確的:只有當下一躍點透過回應接受責任時,才應將其從任何佇列中刪除250 Ok

相關內容