目前,我使用两家托管服务提供商:一家提供共享托管,我在这里注册了域名,另一家提供一台 vps 服务器。
我使用记录 A 将对 my.site.com 的请求从共享服务器重定向到 vps。结果,我的网站可以访问,但我无法正确发送邮件,因为这些邮件的标题错误:已接收:来自 vpshostname.localdomain(未知 [xx.xx.xx.xx]),其中 xx.xx.xx.xx 表示服务器 IP。
是否可以配置我的 vps 来发送我的示例邮件,或者我应该将我的 my.site.com 转移到 vps 然后正确配置它?
我不想转让我的域名。
答案1
您有两个选择,使用凭据中继您的邮件主机或在您的 VPS 上运行邮件服务器:
安装并配置 postfix:
mkdir /etc/ssl/private/ openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem
当提示输入通用名称时,输入您将用于 ehlo 的真实主机名,这可确保在发送电子邮件时 TLS 匹配。
chmod o= /etc/ssl/private/postfix.pem
配置 Postfix:
postconf -e smtpd_use_tls=yes postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem postconf -e smtpd_tls_loglevel=3 postconf -e smtpd_tls_received_header=yes postconf -e smtpd_tls_session_cache_timeout=3600s postconf -e tls_random_source=dev:/dev/urandom
`
检查是否可以发送电子邮件
telnet 到 mx 服务器,telnet gmail-smtp-in.l.google.com 25
如果您收到 220 响应,则表示一切正常,如果没有,则必须使用 AUTH。
1)认证中继配置
postconf -e relayhost=smtp.example.com:submission postconf -e smtp_sasl_auth_enable=yes postconf -e smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd postconf -e smtp_sasl_security_options=noanonymous postconf -e smtp_sasl_tls_security_options=noanonymous
echo 'smtp.example.com username:password' >> /etc/postfix/sasl_passwd
2) 邮件主机 作为邮件主机,您至少需要配置 SPF,如果您要发送批量邮件或需要电子邮件身份验证,则需要配置 DKIM 和 DMARC。您需要访问您的 DNS:
@ IN TXT "v=spf1 a mx ip4:x.x.x.x -all
然后重新配置您的主机以进行相应的发送。
其他内容)您可以使用通用地图重新映射您的发件人姓名
postconf -e smtp_generic_maps=hash:/etc/postfix/generic
echo 'www-data [email protected]' >> /etc/postfix/generic echo 'root [email protected]' >> /etc/postfix/generic postmap /etc/postfix/generic service postfix restart
与往常一样,在更改postconf -e
值时,观察tail -f /var/log/maillog
并使用postfix reload