电子邮件未发送到以 domainname.co 为域名的电子邮件地址。
我在 Ubuntu 系统中有三个用户,分别是 root、ubuntu 和 domainname。
以下是日志(tail /var/log/mail.log -n 20)
Feb 19 04:36:56 server postfix/pickup[22963]: 521A0106D3A: uid=1003 from=<domainname>
Feb 19 04:36:56 server postfix/cleanup[26043]: 521A0106D3A: message-id=<[email protected]>
Feb 19 04:36:56 server postfix/qmgr[14300]: 521A0106D3A: from=<[email protected]>, size=357, nrcpt=1 (queue active)
Feb 19 04:36:58 server postfix/smtp[26045]: 521A0106D3A: to=<[email protected]>, relay=in.hes.trendmicro.com[54.219.191.20]:25, delay=1.9, delays=0.01/0.01/1.6/0.21, dsn=5.7.1, status=bounced (host in.hedmicro.com[54.219.191.20] said: 550 5.7.1 <[email protected]>: Recipient address rejected: ERS-DUL. (in reply to RCPT TO command))
Feb 19 04:36:58 server postfix/cleanup[26043]: 732DD106D41: message-id=<[email protected]>
Feb 19 04:36:58 server postfix/bounce[26046]: 521A0106D3A: sender non-delivery notification: 732DD106D41
Feb 19 04:36:58 server postfix/qmgr[14300]: 732DD106D41: from=<>, size=2368, nrcpt=1 (queue active)
Feb 19 04:36:58 server postfix/qmgr[14300]: 521A0106D3A: removed
Feb 19 04:36:59 server postfix/smtp[26045]: 732DD106D41: to=<[email protected]>, relay=in.hes.trendmicro.com[54.219.191.21]:25, delay=1.5, delays=0/0/1.3/0.21, dsn=5.7.1, status=bounced (host in.hes.trendmicro.com[54.219.191.21] said: 550 5.7.1 <[email protected]>: Recipient address rejected: ERS-DUL. (in reply to RCPT TO command))
Feb 19 04:37:00 server postfix/qmgr[14300]: 732DD106D41: removed
的内容/etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = server.domainname.co
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
myorigin = $mydomain
mydestination = $myhostname, server, localhost.domainname.co, localhost
#smtp_generic_maps = texthash:/etc/postfix/generic
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
virtual_alias_maps = hash:/etc/postfix/virtual
sender_bcc_maps = hash:/etc/postfix/bcc
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtp_tls_security_level = may
allow_percent_hack = no
我正在使用下面的脚本检查这一点。
$sender = '[email protected]';
$recipient = '[email protected]';
$subject = "php mail test";
$message = "php test message";
$headers = 'From:' . $sender;
if (mail($recipient, $subject, $message, $headers)) {
echo "Message accepted";
} else {
echo "Error: Message not accepted";
}
更新:当前答案无济于事,因为在 main.cf 文件中的一些配置更改后,错误代码发生了变化。
答案1
信息:
Feb 19 04:36:59 server postfix/smtp[26045]: 732DD106D41: to=<[email protected]>, relay=in.hes.trendmicro.com[54.219.191.21]:25, delay=1.5, delays=0/0/1.3/0.21, dsn=5.7.1, status=bounced (host in.hes.trendmicro.com[54.219.191.21] said: 550 5.7.1 <[email protected]>: Recipient address rejected: ERS-DUL. (in reply to RCPT TO command))
表示 SMTP 服务器in.hes.trendmicro.com[54.219.191.21]
拒绝邮件,因为它们来自动态/拨号用户列表. 大多数邮件服务器仅接受来自静态 IP 地址的消息,以减少垃圾邮件流量。
根据提供的说明这里,您可能需要与您的互联网提供商联系,并要求他们将您的 IP 地址从 ERS-DUL 黑名单中删除:
动态用户列表 (DUL) 数据库它包含来自 ISP 的拨号用户的 IP 地址或 IP 块,这些用户是垃圾邮件来源。
要从数据库中删除 IP,用户应执行以下操作之一:
联系 ISP,然后 ISP 将通过以下方式发出请求:
- 电子邮件:[电子邮件保护]
- 网络表单:全局阻止列表例外表格
提供您想要删除 IP 地址的原因。
在自己的邮件服务器上配置邮件客户端,以通过 ISP 指定的邮件中继中继出站邮件。
答案2
错误代码 554 表示 IP 封锁:远程邮件服务器目前不接受来自服务器 IP 地址的电子邮件。此 IP 封锁可能是由于之前观察到相关 IP 地址的电子邮件数量异常。
您需要联系 Apple 的人员来解决这个问题,或者向您的 ISP 索取一个新的 IP。请注意,获取新 IP 并不能保证解决您的问题。很多时候,公司可能会阻止某个 IP 范围,因为有人滥用它(发送垃圾邮件、DDOS 攻击等)。
联系 Apple 有点棘手,但您可以拨打他们的电话 800-275-2273 并寻求企业支持或在线服务。有人可能会接受您的请求并将其转发给合适的人员。您可能不会收到他们的回复,所以您必须继续尝试。
答案3
不用重写脚本,最好的办法是在本地机器上设置一个邮箱,最好使用监听 127.0.0.1 的 dovecot
您的公共 IP 地址(拨入),最好为您在域中使用的活动采用一个静态 IP 地址。
1) 创建一个 MX 记录并在其中放置您的公共 IP 地址(最好是静态的)2) 在 mandrill、mailjet.com 上注册并订购包裹并按照步骤操作。
3)创建一个名为:/etc/postfix/sasl_passwd 的文件,其内容为:
[smtphost.provider.com]:port username:password
将括号中的内容替换为您的邮件提供商的 smtp 和端口号以及电子邮件地址和密码。
4)运行/usr/sbin/postmap /etc/postfix/sasl_passwd
在 main.cf 末尾添加内容:
relayhost=[in-v3.mailjet.com]:587
smtp_sasl_auth_enable=yes
smtp_sasl_security_options=noanonymous
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
smtp_use_tls=yes
(我以 mailjet 中的这个为例)
然后您可以通过此提供商发送您的活动,而不是通过拨号地址发送,并且您的邮件应该可以毫无问题地投递。
注意保证所投递邮件的质量。
发送垃圾邮件也很容易被阻止并且是违法的......
但如果您想不时为您的客户开展活动,那么这是最好的方式。