class EmailNotifier(BaseNotification): def __init__(self): self.settings = EmailSettings() def send_notification(self, tweets): self._refresh_settings() if not self.settings.isenabled: return try: server = smtplib.SMTP( self.settings.server, self.settings.serverport) server.ehlo() server.starttls() server.login(self.settings.user, self.settings.password) server.sendmail( self.settings.sender, [self.settings.receivers], self._getformattedmail(tweets)) server.close() except: print(sys.exc_info()[0]) def _getformattedmail(self, tweets): t = '' for tweet in tweets: t = t + str(tweet.text) + '\n' msg = MIMEMultipart() msg['From'] = self.settings.sender msg['To'] = self.settings.receivers msg['Subject'] = self.settings.subject msg.attach(MIMEText( self.settings.message.format(t).encode('utf-8'), 'plain', 'utf-8')) return msg.as_string() def _refresh_settings(self): self.settings.refresh()
def __init__(self): self.settings = EmailSettings()