import smtplib
fromaddress = '[email protected]'
toaddress = [fromaddress]
message = """
From: %s
To: %s
Subject: test
Hello
Goodbye
""" % (fromaddress, toaddress)
server = smtplib.SMTP('mydomain.com')
server.set_debuglevel(1)
server.sendmail(fromaddress, toaddress, message)
此代码打开一个套接字确定,但然后在发送失败与'连接意外关闭'错误的sendmail。从查看smtplib source这发生在从smtp服务器返回空响应时。蟒蛇smtplib sendmail失败
我从上面的代码中错过了什么?我正在廉价的webhost上运行这个脚本作为cgi脚本,作为他们服务的一部分,他们安装了sendmail和python服务。在他们的文档中,他们有标准的“在php中发送电子邮件”的代码示例,不需要认证,所以我假设python应该也是一样。
任何人有任何见解?主机是hostgator,如果有帮助的话。
编辑:
底层误差是SMTP服务器发出一个硬“由对等连接复位”复位即TCP。在什么情况下电子邮件服务器会这样做?
如果认为是垃圾邮件它可能关闭连接。例如,如果发件人地址确实是“[email protected]”。或者你可能连接到错误的SMTP服务器。检查HELO交换并确认你有合适的服务器。 “mydomain.com”是否解析为指向hostgator的smtp服务器的A记录?最后,尝试使用telnet并手动运行SMTP协议。也许你会注意到一个有意义的错误信息。 – 2013-02-19 22:32:31
没有telnet访问:( – user1561108 2013-02-19 22:50:45
你不需要Telnet访问你的服务器,你只需要任何类型的shell访问。一旦你登录你的服务器,*然后*你运行“telnet mydomain.com 25”。 – 2013-02-19 22:51:44