diff --git a/alert/sendmail.py b/alert/sendmail.py new file mode 100644 index 0000000..1a9047e --- /dev/null +++ b/alert/sendmail.py @@ -0,0 +1,58 @@ +#!/usr/bin/python3 + +from email.mime.text import MIMEText +from email.mime.image import MIMEImage +from email.mime.multipart import MIMEMultipart +import smtplib +import sys + +# Mail basic information +mail_host = "smtp.163.com" +from_mail = 'xgdfmf@163.com' +from_mail_password = 'SATTGHVFIJEGZMFP' +receiver_to = ['mffan0922@163.com'] +receiver_cc = [] +to_mail = receiver_to + receiver_cc + + +# MIMEMultipart: mixed/alternative/related +# (1)mixed: default option, especially situation with mail attachments must use this one +# (2)alternative: with both plain text and hyper text in mail content, using this one +# (3)related:sending content of html format, probably using picture as the background of mail +# content, then html text will be stored in alternative segment, whereas the background picture +# will be stored in multipart/related segment + +# Mail content +msg = MIMEMultipart() +msg['From'] = from_mail +msg['To'] = ";".join(to_mail) +msg['Subject'] = sys.argv[1] +txt = sys.argv[2] +body = MIMEText(txt, 'plain', 'utf-8') +msg.attach(body) + + +# Mail attachment +if len(sys.argv) > 3: + for attachment in sys.argv[3:]: + filename = attachment.split('/')[-1] + attach_file = open(attachment, 'r').read() + attach = MIMEText(str(attach_file), 'base64', 'utf-8') + attach["Content-Type"] = 'application/octet-stream' + attach.add_header('Content-Disposition', 'attachment', filename=filename) + msg.attach(attach) + + +try: + server = smtplib.SMTP(mail_host) + server.docmd('helo', from_mail) + server.starttls() + server.login(from_mail, from_mail_password) + + server.sendmail(from_mail, to_mail, msg.as_string()) + server.quit() + print('sendemail successful!') +except Exception as err: + print('Sending email failed, the reason is as below:') + print(err) +