答案1
谷歌阻挡一些交通由于存在滥用风险。在 GCP 中运行自己的邮件服务器是没有意义的,除非您只需要接收电子邮件(但您无法发送它们)。
默认情况下,Compute Engine 允许除端口 25 之外的所有端口上的出站连接,端口 25 因存在滥用风险而被阻止。所有其他端口均开放,包括端口 587 和 465。
最好使用第三方解决方案来发送电子邮件 - 例如 MailJet 或 SendGrid。
除了使用标准电子邮件端口之外,拥有可信赖的第三方提供商(例如 SendGrid、Mailgun 或 Mailjet)还可以减轻 Compute Engine 和您维护接收者 IP 信誉的负担。
看看我对类似问题的回答这里。
然而 - 考虑到你的情况 - 你应该能够连接但您必须发布有关服务器配置的更多详细信息才能解决此问题。
您可以使用 检查端口是否打开nmap -p 465 EXTERNAL_IP_VM
;您应该会看到类似这样的内容:
wb@cloudshell:~$ nmap -p 53 1.1.1.1
Starting Nmap 7.70 ( https://nmap.org ) at 2020-11-05 11:20 UTC
Nmap scan report for one.one.one.one (1.1.1.1)
Host is up (0.0046s latency).
PORT STATE SERVICE
53/tcp open domain
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
STATE open
表示此端口已开放通信。但是如果您收到465/tcp filtered smtps
此信息,则表示无法正常工作。
如果端口已打开,请确保有任何东西正在监听它,请通过 ssh 进入您的虚拟机并检查sudo lsof -nP -iTCP -sTCP:LISTEN | grep 465
是否有任何东西正在监听该端口。我检查了端口 80 并得到:
wb@deb10-sample-www-page:~$ sudo lsof -nP -iTCP -sTCP:LISTEN | grep *:80
nginx 7631 root 6u IPv4 29349 0t0 TCP *:80 (LISTEN)
nginx 7631 root 7u IPv6 29350 0t0 TCP *:80 (LISTEN)
nginx 7709 www-data 6u IPv4 29349 0t0 TCP *:80 (LISTEN)
nginx 7709 www-data 7u IPv6 29350 0t0 TCP *:80 (LISTEN)
nginx 7710 www-data 6u IPv4 29349 0t0 TCP *:80 (LISTEN)
nginx 7710 www-data 7u IPv6 29350 0t0 TCP *:80 (LISTEN)
更新
您的操作系统防火墙设置正确。端口 465 对传入和传出流量均开放。
您的 GCP 防火墙规则也以正确的方式设置。
从最后一张截图中我可以清楚地看到端口 465 处于closed
状态,这意味着 nmap 能够连接并从操作系统获得响应,但没有应用程序在其上监听。
问题出在您的 phpmailer 配置上。我在 Stack 上找到了一些有用的讨论,可以帮助您: