我正在调查邮件服务器黑名单问题。
我们的邮件服务器的用户超出配额,导致电子邮件被退回给发件人,并显示“用户超出配额”消息。其中一些电子邮件是垃圾邮件,带有伪造的发件人字段。这些邮件被退回到伪造的发件人地址。结果,我们的服务器被添加到某个黑名单中。这有道理吗?
我不知道该如何解决这个问题。我认为“用户超出配额”消息很有用:作为发件人,我希望在邮件未送达时收到通知。
一个选项是,如果邮件被检测为垃圾邮件,则不将其退回。我们使用 postfix 和 spamassassin,当使用 显示此类邮件时postcat -q
,我可以看到该邮件的垃圾邮件评分很高。
我们应该如何着手?
在我们的配置中,spamassassin 仅标记邮件,每个用户都可以使用 sieve 来过滤/删除/移动邮件。spamassassin 本身是否应该删除高分邮件?postfix 是否应该在退回邮件之前检查垃圾邮件分数,或者在尝试发送邮件之前检查垃圾邮件分数?
我不想重新发明轮子,所以虽然我上述的想法可能有效,但我想知道人们通常如何解决这个问题。
答案1
在最初接受传递邮件后,不要将其退回(向原始或欺骗的发件人发送“新”邮件,宣布超出配额的情况),而是在 smtp 协商期间拒绝该邮件。
“如何”取决于 LDA。
例如,对于 postfix + dovecot 来说,一个选项似乎是:
http://blog.sys4.de/postfix-dovecot-mailbox-quota-en.html
首先您需要在 Dovecots dovecot.conf 中激活并配置配额状态服务:
plugin { ... quota_grace = 10%% # 10% is the default quota_status_success = DUNNO quota_status_nouser = DUNNO quota_status_overquota = "552 5.2.2 Mailbox is full" ... } service quota-status { executable = quota-status -p postfix inet_listener { port = 12340 # You can choose any port you want } client_limit = 1 }
为了使用新配置的 Dovecot 策略服务,您需要告诉 Postfix 与 main.cf 中的服务进行通信:
smtpd_recipient_restrictions = ... check_policy_service inet:mailstore.example.com:12340