我尝试在 python 中玩耍以了解有关 smtp 协议的更多信息。更准确地说,我一直在尝试将邮件直接发送到主机的 smtp 服务器,但收效甚微。
例如,假设我想向 gmail.com 地址发送邮件,我查找 gmail.com 的 mx 记录:
>> nslookup -type=MX gmail.com
gmail.com MX preference = 40, mail exchanger = alt4.gmail-smtp-in.l.google.com
gmail.com MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com MX preference = 10, mail exchanger = alt1.gmail-smtp-in.l.google.com
然后我在python中执行以下操作:
import smtplib
# Tried both port 465 and 587 (can't test port 25 since it's blocked by my ISP)
s = smtplib.SMTP("alt1.gmail-smtp-in.l.google.com", 587)
我尝试了几个,但对于除一个之外的所有人,我总是得到:
“[Errno 10051] 尝试对无法访问的网络执行套接字操作”或
“[Errno 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应时间,或建立连接失败,因为连接的主机未能响应”异常。
我在某处读到一些邮件服务器对您的 IP 进行反向查找,如果它没有域,则拒绝连接。他们是怎么做到的?
我还在某处读到,许多邮件服务器拒绝来自动态 IP 地址的传入邮件(我显然将其作为我的 ISP 的私人客户)。他们如何检查 IP 地址是动态的还是静态的?
这些是大多数服务器似乎拒绝我的连接的原因吗?或者还有更多的东西吗?