显然是 DigitalOcean阻止 IPv6 上的出站 SMTP。
我可以通过telnet
以下方式确认这一点:
⟫ telnet smtp.gmail.com 465
Trying 2607:f8b0:400d:c07::6c...
> Waits for about 2 minutes before it continues <
Trying 173.194.204.108...
Connected to smtp.gmail.com.
Escape character is '^]'.
因此似乎过了一段时间后它又会回到 IPv4。
使用telnet -4
立即生效:
⟫ telnet -4 smtp.gmail.com 465
Trying 173.194.204.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
我发现也ssmtp
有一个-4
选项:
-4
强制 ssmtp 仅使用 IPv4 地址。
然而由于某种原因,无论是否有-4
。ssmt
超时,我都会得到相同的结果(或者有时会在约 2 分钟后成功发送电子邮件)。
我的问题:-4
为什么虽然可以连接,但是不起作用telnet -4
?
或者:我该如何最好地调试它?是否有一些netcat
命令或其他东西可以用来确认ssmtp
确实正在尝试通过 IPv4 进行连接?