我想将 localhost 配置为通过后缀服务器发送电子邮件,我这样做是为了测试我使用 Wordpress 设置 Docker 的解决方案(在互联网电子邮件上找到的解决方案不起作用,也 curl 但那是因为企业 CA SSL 证书)。现在我正在 Fedora 上对此进行测试,并尝试发送到我在 onet.pl 和 jcubic.pl 域的两个帐户,他们都拒绝了我的电子邮件。
以下是后缀日志:
Apr 4 13:24:14 23c96150d42f postfix/smtp[134]: BCAA01659A0: to=<[email protected]>, relay=mail.jcubic.pl[185.255.40.21]:25, delay=0.25, delays=0/0/0.07/0.17, dsn=5.7.1, status=bounced (host mail.jcubic.pl[185.255.40.21] said: 550 5.7.1 <[email protected]>: Recipient address rejected: Please see http://www.openspf.net/Why?s=helo;id=jcubic.pl;ip=185.129.113.210;r=unknown (in reply to RCPT TO command))
Apr 4 13:24:14 23c96150d42f postfix/qmgr[95]: BCAA01659A0: removed
Apr 4 13:25:41 23c96150d42f postfix/smtp[134]: 2D02E1659A0: to=<[email protected]>, relay=mx.poczta.onet.pl[213.180.147.146]:25, delay=0.85, delays=0/0/0.85/0, dsn=4.7.1, status=deferred (host mx.poczta.onet.pl[213.180.147.146] refused to talk to me: 220-mx.poczta.onet.pl ESMTP 450 4.7.1 Client host rejected: cannot find your reverse hostname, [185.129.113.210])
首先是 SPF 保护,我可以忽略它,只处理显示反向主机名错误的 onet.pl,我已经读到我需要在 jcubic.pl 有正确的 DNS 记录。我可以在 jcubic.pl 上设置 DNS,这只是为了查看电子邮件是否有效,但我不知道如何设置多个 A DNS 记录。我也不确定我该怎么做(记录应该是什么样子)。
我在 OpenStack 上使用 Ubuntu 测试我的 docker-wordpress 组合,我能够向 gmail 公司帐户发送电子邮件。
我正在使用此设置,我将后缀实例作为具有此配置的 docker compose 服务:
postfix:
image: catatnight/postfix
environment:
maildomain: example.com # at work here was valid domain of my company (gene.com)
smtp_user: postfix:postfixpass
ports:
- "25:25"
restart: always
端口 25 可能不会公开它只是为了测试,我不确定这是否是没有发送电子邮件的问题:
我的 wordpress image 使用msmtp
命令发送电子邮件,我现在正在测试这个:
echo "Hello this is sending email using msmtp" | msmtp <name>@onet.pl
echo "Hello this is sending email using msmtp" | msmtp <name>@jcubic.pl
我的 msmtp 配置如下所示:
# Set defaults.
defaults
# Enable or disable TLS/SSL encryption.
tls off
tls_starttls off
# Setup WP account's settings.
account postfix
host postfix
port 25
auth login
user [email protected]
password postfixpass
from [email protected]
logfile /var/log/msmtp/msmtp.log
account default: postfix
我正在测试不同user
的 nad from
,我可以在 jcubic.pl 上配置 DNS 以验证我的本地 IP(这是动态的)现在是否有效,所以我可以测试发送电子邮件是否有效?我的域 jcubic.pl 在共享主机上,但我可以添加 DNS 记录。也可以修复 SPF 问题。这将如何在普通服务器上工作。在工作中,我使用我公司的域,但它是 Intranet IP 地址(私有 OpenStack 的实例),我不确定为什么 gmail 认为发件人是有效的。
我还有另一个问题是 postfix 邮件服务器需要公开并且可以访问发送电子邮件的 IP?这就是它的工作方式(有来自 docker postfix 容器的公共端口),但在这里我有 localhost 和 NAT 路由器,我的公共 IP 不同,邮件服务器不能从互联网访问。我不确定我的公司有哪些 DNS 记录。
直接从动态 IP 发送电子邮件可能会出现问题。您可能应该使用您的 ISP SMTP 服务器或通过您自己的电子邮件服务器使用提交。更不用说 IP 地址目前在几个基于 DNS 的黑名单 (DNSBL) 上。
不允许
185.129.113.210
发送jcubic.pl
电子邮件由于动态 IP 地址,您必须添加
+ip4:185.129.113.210
可能的整体。+íp4:185.129.112.0/22
这是不明智的,如果允许PL-UNINET-OWN-INFRASTRUCTURE
网络块上的每个设备以jcubic.pl
. 在提交端口上使用经过身份验证的 SMTP是一种解决方案。本地 Postfix 可以通过您现有的邮件服务器将所有非本地邮件作为relayhost
.这是您不能简单地通过修改您的正向区域来解决的问题
jcubic.pl
,因为这是关于 IP 地址缺少反向PTR
记录的问题185.129.113.210
。只有 IP 块的所有者才能更改这些记录。dig -x 185.129.113.210
返回NXDOMAIN
for210.113.129.185.in-addr.arpa. IN PTR
,所以目前根本没有反向记录。许多接收 SMTP 服务器要求同时存在匹配的正向和反向记录,并且它们也匹配SMTP 标语(服务器如何在
HELO
命令中自我介绍)。