我无法从我的 Ubuntu VM 发送简单的测试消息到我的 Gmail 进行报告。
我已按照多个指南在 /etc/postfix/sasl_passwd 中设置应用程序密码,使用端口 587、禁用防火墙等。
我可以将内部消息发送到 /var/mail/root。/var/log/mail.log 中的日志显示status=bounced (unknown user:
。我感觉这是因为我的服务器没有外部 IP 或域。但它可以正常访问 apt update。我是否必须以某种方式将 IP 公开到外部?有没有办法通过我的主机的 NAT 发送电子邮件?
/etc/postfix/main.cf
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, xx.xx.xx.xx
...
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
#smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
在 /etc/postfix/sasl_passwd 中:[smtp.gmail.com]:587 [email protected]:xxxxxxx
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd && systemctl reload postfix
mail [email protected] <<< "message"
我想我需要设置一些 IP:
mynetworks =
dpkg-reconfigure postfix
重新启动配置向导,然后我看到“邮件未以 root 身份传送到外部传送代理。”我想知道我是否不能以 root 身份将其发送出去。
另外,有人告诉我,许多 ISP 都封锁了端口 587。我可以用 telnet my.domain 587 来测试,但我没有静态 IP 或域。我尝试使用动态 IP,但出现“连接超时”提示。
指南:
https://www.systoolsgroup.com/add/postfix-to-gmail-account/
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-20-04
我能够从我的 GCP 实例中收到一条消息。设置基本相同。我想我的 ISP 可能阻止了端口 587。
答案1
事实证明,GMail 正在向垃圾邮件和垃圾桶发送邮件。我尝试使用 SendGrid,并在日志文件中收到更好的错误消息。设置发件人后,能够获得 250 个已送达邮件,然后查看 GMail 内部。SendGrid 和 GMail smtps 现在都可以正常工作。
mydestination =
myorigin = a
smtp_sasl_security_options = noanonymous
对于mail
实用程序,如果使用主题,则需要使用 -c 开关,例如mail -s "Disk Space Alert Used: $CURRENT" -c $EMAIL $EMAIL <<< $(hostname -i; uname -a)