#!/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
# （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)

