import smtplib
fromaddress = 'me@example.com'
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 源,当 smtp 服务器返回一个空响应时,就会发生这种情况。
我从上面的代码中遗漏了什么?我在一个便宜的虚拟主机上运行它作为一个 cgi 脚本,作为他们服务的一部分,他们安装了 sendmail 和 python 服务。在他们的文档中,他们有标准的“在 php 中发送电子邮件”代码示例,不需要身份验证,所以我认为同样适用于 python。
任何人有任何见解?如果有帮助,主机是hostgator。
编辑:
根本错误是 smtp 服务器发出硬重置,即 TCP 'Connection reset by peer'。电子邮件服务器在什么情况下会这样做?