Postfix如何解决550 Mail Content Denied错误
如果你搭建了自己的Postfix邮件服务器,那么在给邮件列表发送邮件时,你可能会在日志里看见“550 Mail Content Denied”错误。有些邮箱服务提供商(ESP)比如QQ邮箱不允许你在短时间内向大量用户群发邮件,QQ邮箱会回复一个Mail Content Denied错误。在这种情况下,我们可以通过限制Postfix发送邮件的频率来解决这个问题。
这篇教程将告诉你如何限制Postfix发送邮件的频率。从2.5版本之后,Postfix支持个性化传送邮件。个性化传送可以让你在给特定域名邮箱发邮件时以特别的方式来发送。
首先输入下面的命令查看Postfix的版本:
user@mail:~$ sudo postconf mail_version mail_version = 2.11.3
如果你的Postfix版本低于2.5,那么你需要升级Postfix。
编辑master.cf文件
sudo vi /etc/postfix/master.cf
将下面两行文字添加到master.cf文件中。
slow-email unix - - n - 1 smtp -o syslog_name=slow-email
slow-email是一个新的传送名(transport name),你可以根据自己的喜好命名。然后保存文件。
现在,将下面一行文字添加到/etc/postfix/transport文件中。如果这个文件不存在,那么就自己新建一个。将domain.com更改成qq.com或者其他的邮箱域名。
domain.com slow:
保存transport文件。然后用postmap生成对应的db文件:
sudo postmap /etc/postfix/transport
现在,打开main.cf文件:
sudo vi /etc/postfix/main.cf
添加下面的文字
transport_maps = hash:/etc/postfix/transport slow-email_destination_rate_delay = 12s slow-email_destination_concurrency_limit = 1 slow-email_destination_recipient_limit = 2 slow-email_initial_destination_concurrency=1
- 第一行是让postfix使用新创建的transport文件。其余4行定义了发送邮件的频率。将slow-email替换为你自己的传送名。
- destination_rate_dealy定义了每次传送之间的间隔。间隔12秒意味着每分钟有60s/12s=5次邮件传送。
- destination_concurrency_limit = 1 表示每次邮件传送只发送一封邮件。
- destination_recipient_limit = 2 表示每次邮件传送会有两个收件人。
- 最后一行将首次并行传送数量设定为1。
保存main.cf文件,然后重新加载postfix配置。
sudo /etc/init.d/postfix reload
下一次你发送邮件到那个域名邮箱的时候,你可以在/var/log/mail.log日志文件里查看发送邮件的频率。
为这篇文章评分
[Total: 4 Average: 3.8]