def __notifyByEmail(self, msg): host = self.config.get('email', 'host') port = self.config.get('email', 'port') username = self.config.get('email', 'username') password = self.config.get('email', 'password') email_sender = EmailSender(host, port, username, password) to_addr = self.config.get('email', 'recipient') from_addr = self.config.get('email', 'from_addr') if email_sender.isValidEmailAddress(to_addr): self.logger.info('Sending notification email to %s' % to_addr) email_sender.send(from_addr, to_addr, 'IP address changed', msg) else: self.logger.error('Invalid email recipient: %s' % to_addr)
def start_main_task(dataframe): now = datetime.now() dt_string = now.strftime("%Y_%m_%d_%H_%M") for i, server_info in dataframe.iterrows(): name, ip, model = server_info[:3] device = FireWallDevice(name , ip , model.lower() , store_path=dt_string) device.get_firewall_credential() if device.login(): device.run_all_commands() device.logout() else: print(f"fail to connect to {name}/{ip}") zipf = zipfile.ZipFile(f'{dt_string}.zip', 'w', zipfile.ZIP_DEFLATED) zipdir(f'{dt_string}', zipf) zipf.close() shutil.rmtree(dt_string) EmailSender.send(f'{dt_string}.zip') os.remove(f'{dt_string}.zip')
def send_email(self, _host, _username, _password, _subject, _toaddr, _body, window): host = _host.get() username = _username.get() password = _password.get() subject = _subject.get() tolist = _toaddr.get(1.0, END).split("\n") tolist.append(self.receiver_entry.get()) body = _body.get(1.0, END) sender = EmailSender(host.split(":")[0], int(host.split(":")[1])) result = sender.send(username, password, tolist, subject, body) print(result) messagebox.showinfo("Info ", result) window.destroy()
import yaml from recipient import Recipient from sender import Sender from email_sender import EmailSender with open('send_email/email.yaml', encoding='utf-8') as f: email_setup = yaml.safe_load(f) sender = Sender(email_setup['from'], email_setup['user'], email_setup['pwd']) def parse_recipient(line): name, email_address, lang = line.strip('\n').split(';') return Recipient(name, email_address, lang) with open('send_email/recipients.csv', encoding='utf-8') as f: recipients_strings = f.readlines() recipients = map(parse_recipient, recipients_strings) for recipient in recipients: subject = email_setup['subject'][recipient.lang] body = email_setup['body'][recipient.lang] email = EmailSender(sender, recipient, subject, body) email.send()