Linux

如何在 exim 中測試非 smtp ACL

  • January 21, 2015

Exim 提供了使用 exim -bh 通過 CLI 測試 ACL 的選項。但是,此方法會打開 SMTP 連接,您只能測試 SMTP ACL。我希望調試和測試 acl_not_smtp ACL - 有沒有類似的方法?

或者,如果有人知道為什麼這在 acl_not_smtp 中不起作用:

deny
     message = Outgoing email is blocked for this domain. Please contact support for assistance.
     senders = /etc/exim_blacklist_users

那將非常有幫助。這在 acl_smtp_rcpt 中有效。

Exim 沒有 -bh 模式模擬 smtp 連接的本地測試模式。所以你必須用真實的資訊來做。

我將創建一個帶有完整標題和正文的範例消息“sample.eml”。將其發送到您控制的地址,測試郵箱或其他東西。從您希望它拒絕的地址開始。使用簡單的命令行將消息傳遞給 Exim:

# No real output
exim -bm -t < "sample.eml"
# Get verbose output, but still not much
exim -v -bm -t < "sample.eml"
# Here's where we figure things out: debug
exim -d+all -bm -t < "sample.eml"

最後一個會產生大量輸出,因此可能會將其重定向到文本文件並查看該文件。查看它在處理此消息時如何處理該非 smtp acl。你會在那裡找到答案。或者使用該 ACL 的調試輸出更新問題,我們將完善我們的答案。

另一種選擇是將您的應用程序配置為使用 SMTP 將這些消息發送到 127.0.0.1 埠 25,而不是將消息傳遞到 /usr/sbin/sendmail(這是 exim 的 sendmail 兼容性包裝器)。然後它將使用 smtp rcpt acl。

引用自:https://serverfault.com/questions/661243