我正在尝试诊断为什么无法通过python通过Amazon SES发送电子邮件。

以下示例演示了该问题,其中userpass设置为适当的凭据。

>>> import smtplib
>>> s = smtplib.SMTP_SSL("email-smtp.us-east-1.amazonaws.com", 465)
>>> s.login(user, pw)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/smtplib.py", line 549, in login
    self.ehlo_or_helo_if_needed()
  File "/usr/lib/python2.6/smtplib.py", line 510, in ehlo_or_helo_if_needed
    (code, resp) = self.helo()
  File "/usr/lib/python2.6/smtplib.py", line 372, in helo
    (code,msg)=self.getreply()
  File "/usr/lib/python2.6/smtplib.py", line 340, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed

该消息不是特别有用,并且尝试了其他评估,但似乎无法使其正常工作。

我可以使用具有这些设置的雷鸟电子邮件客户端发送电子邮件,因此我的假设是我要执行与TLS相关的任务。

最佳答案

我认为SMTP_SSL与SES不再兼容。一个必须使用starttls()

smtp = smtplib.SMTP("email-smtp.us-east-1.amazonaws.com")
smtp.starttls()
smtp.login(SESSMTPUSERNAME, SESSMTPPASSWORD)
smtp.sendmail(me, you, msg)

10-06 12:49