class SMTPMailer(object): def __init__(self, contents): self.message = MessageParser(contents) def send(self, settings): smtp = smtplib.SMTP() smtp.set_debuglevel(0) smtp.connect(settings["smtp_server"], settings["use_port"]) smtp.ehlo() if settings["smtp_tls"]: smtp.starttls() smtp.ehlo() smtp.login(settings["smtp_username"], settings["smtp_password"]) self.message.begin_parsing() try: for recipient in self.message.recipients: smtp.sendmail(self.message.sender, recipient, self.message.body) except Exception as error: print error finally: smtp.close()
class testMessageParser(unittest.TestCase): def setUp(self): f = open("tests.txt", 'r') data = f.read() self.mp = MessageParser(data) self.parse_result = self.mp.begin_parsing() def testBeginParser(self): self.assertEqual(self.parse_result, True) def testParseSender(self): self.assertEqual(self.mp.sender, "*****@*****.**") def testParseRecipients(self): self.assertEqual(self.mp.recipients, ["*****@*****.**", "*****@*****.**", "*****@*****.**"]) def testParseBody(self): self.assertEqual(self.mp.body, "This is the mail\n")