【发布时间】:2015-01-08 15:31:15
【问题描述】:
Email 类已经过测试,并且具有在使用有效凭据时发送电子邮件的功能。当我使用扭曲的多个协议时,问题就出现了;例如,当协议扭曲邮件和扭曲 DNS 或扭曲 IRC 时。
创建的代码将无限运行,当触发事件时,我希望收到一封报告该问题的电子邮件,例如 DNS 无法解析有效域、DNS 服务关闭等,但是当收到一封电子邮件时程序退出(返回代码 0),因此电子邮件类应该包含一些我误导的代码,我已经检查了 API,但不知道我错过了什么。
我目前用来发送电子邮件的类:
class Email:
def __init__(self):
threading.Thread.__init__(self)
self.smtp_server = "SMTP"
self.user_name = "MAIL@DOMAIN"
self.user_password = "MAIL_PASSWORD"
self.portTLS = 587
self.portSSL = 465
def sendEmail(self, m):
contextFactory = ClientContextFactory()
contextFactory.method = SSLv3_METHOD
resultDeferred = Deferred()
senderFactory = ESMTPSenderFactory(
self.user_name,
self.user_password,
self.user_name,
m.to,
m.text,
resultDeferred,
contextFactory=contextFactory)
reactor.connectTCP(self.smtp_server, self.portTLS, senderFactory)
resultDeferred.addCallbacks(self.cbSentMessage, self.ebSentMessage)
return resultDeferred
def cbSentMessage(self, result):
print "Message sent"
reactor.stop()
def ebSentMessage(self, err):
err.printTraceback()
reactor.stop()
【问题讨论】:
标签: python email client twisted