scripts/alert/sendmail.py

59 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 = 'PSIKFDYLMGBPSEPJ'
receiver_to = ['mffan0922@163.com']
receiver_cc = []
to_mail = receiver_to + receiver_cc
# MIMEMultipart: mixed/alternative/related
# 1mixed: default option, especially situation with mail attachments must use this one
# 2alternative: with both plain text and hyper text in mail content, using this one
# 3relatedsending 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)