メールの送信に常に使用している基本的なユーティリティがあります。
Gmail を使用して、アラート、通知などを送信しています...
現在、それらはすべてこのエラーで壊れており、Google が原因かどうか疑問に思っています。
Traceback (most recent call last):
File "/home/ubuntu/workspace/includes/utility.py", line 44, in <module>
sendMail('cctest',parms,body='ok - no cc')
File "/home/ubuntu/workspace/includes/utility.py", line 38, in sendMail
server.sendmail(fromaddr, toaddrs, message)
File "/usr/lib/python2.7/smtplib.py", line 700, in sendmail
self.rset()
File "/usr/lib/python2.7/smtplib.py", line 441, in rset
return self.docmd("rset")
File "/usr/lib/python2.7/smtplib.py", line 366, in docmd
return self.getreply()
File "/usr/lib/python2.7/smtplib.py", line 343, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
以下は、私が通常使用するサンプルコードです。最後にコードを変更したのがいつか思い出せません。
def sendMail(subject,parms,body=None,cc=None):
import smtplib
import email.utils
from email.mime.text import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email import Encoders
toaddr = parms['email_to']
fromaddr = parms['email_from']
message_subject = subject
message_text = body
if cc:
message = "From: %s\r\n" % fromaddr + "To: %s\r\n" % toaddr + "CC: %s\r\n" % ",".join(cc) + "Subject: %s\r\n" % message_subject + "\r\n" + message_text
toaddrs = [toaddr] + cc #+ bcc
else:
message = "From: %s\r\n" % fromaddr + "To: %s\r\n" % toaddr + "Subject: %s\r\n" % message_subject + "\r\n" + message_text
toaddrs = [toaddr]
server = smtplib.SMTP('smtp.gmail.com',587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(fromaddr,parms['email_password'])
server.sendmail(fromaddr, toaddrs, message)
server.quit()
print "Email sent..."