如果你的使用情況進行一次發送一個消息,這似乎是最正確的給我的解決方案,將是爲每一個新的SMTP會話消息:
from smtplib import SMTP
smtp = SMTP('smtp.server.com')
def notifyUser(smtp, smtp_user, smtp_password, from_email, to_email, msg):
smtp.login(smtp_user, smtp_password)
smtp.sendmail(from_email, to_email, msg.as_string())
smtp.quit()
如果您驗證自己(一個常見的情況),您的SMTP服務器不必需的,這可以進一步簡化爲:
from smtplib import SMTP
smtp = SMTP('smtp.server.com')
def notifyUser(smtp, from_email, to_email, msg):
smtp.sendmail(from_email, to_email, msg.as_string())
smtp.quit()
如果一次有多條消息發送是常見的,並且您希望通過爲該組消息重複使用相同的SMTP會話來優化此情況(如果您不需要登錄到SMTP服務器):
from smtplib import SMTP
smtp = SMTP('smtp.server.com')
def notifyUsers(smtp, smtp_user, smtp_password, from_to_msgs):
"""
:param from_to_msgs: iterable of tuples with `(from_email, to_email, msg)`
"""
smtp.login(smtp_user, smtp_password)
for from_email, to_email, msg in from_to_msgs:
smtp.sendmail(from_email, to_email, msg.as_string())
smtp.quit()
您是否使用'SMTP.sendmail'發送電子郵件?這應該封裝從'connect'開始的所有低級命令。或者你是否試圖讓SMTP會話保持打開狀態,並重復使用這些郵件? –
我已經添加了你問的代碼。希望澄清一些問題。 :-) – xpanta