Sendmail access_db 配置。怎麼使用以及怎麼寫

Sendmail access_db 配置。怎麼使用以及怎麼寫

我正在閱讀有關 sendmail 的 access_db 功能的資訊。顯然,作為阻止垃圾郵件的預防方法,它看起來很有前途。

我有幾個與如何使用 access_db 有關的問題。所以基本上我在存取文件中指定了一組規則,sendmail 將檢查該資料庫以查看它是否應該對電子郵件執行任何操作。

  1. 不符合任何指定規則的郵件怎麼辦?預設行為是什麼?
  2. 我可以使用正規表示式嗎?例如,「To:*@spam.com REJECT」有效嗎?
  3. 如果我只有“paypal.com RELAY”,這是否意味著我的 sendmail 將接受並發送源自或發送至 paypal.com 的電子郵件?

多謝!

答案1

  1. 如果規則與 access_db 中的規則不匹配,則不會影響接受或拒絕訊息。該訊息繼續由其餘規則處理。
  2. 描述了 access_db (以及任何通配符,但不是正規表示式)這裡。如果您想要正規表示式,則必須編寫自己的規則集來模仿 access_db 行為但使用正規表示式映射,或使用 milter,例如MIME德芳, 或者milter-正規表示式
  3. 最好使用以From:Connect:代替普通 IP 位址或網域開頭的規則,這樣就不必考慮該規則是關於連接到您的主機的主機的域名,還是關於寄件者地址的域名(它們不一定相同)。

答案2

如何在 Sendmail 中使用正規表示式

我收到了所有數位網域的垃圾郵件,例如 3456.com,一開始我在 access.db 上增加了 10,000 個條目,這太荒謬了。

在您的 sendmail.mc 檔案中,在底部的郵件程式之後,您可以新增一個像這樣的正規表示式。

LOCAL_CONFIG
Kallnumbers regex -a@MATCH @[0-9]+\.com
LOCAL_RULESETS
SLocal_check_mail
R$+     $: $(allnumbers $1 $)
R@MATCH     $#error $: "550 Rejected."

您可以逐字複製大部分內容,只需更改一些內容即可。

定義你的正規表示式並給它一個標識符,在它前面加上K 我的標識符是allnumbers,我的正規表示式是[0-9]+\.com

   Kallnumbers regex -a@MATCH @[0-9]+\.com

最後兩個定義了比賽和採取的行動

R$+     $: $(allnumbers $1 $)
R@MATCH     $#error $: "550 Rejected.

我意識到這看起來很cf,但它在mc。

相關內容