def send_mail(mail_server, send_from, send_to_list, subject, text, text_color="black", files=None):
    assert isinstance(send_to_list, list)
    msg = MIMEMultipart(‘related‘)
    msg[‘From‘] = send_from
    msg[‘To‘] = ‘,‘.join(send_to_list)
    msg[‘Subject‘] = subject
    warnings = []
    attachments = []
    if isinstance(files, list):
        for file in files:
            try:
                with open(file, "rb") as f:
                    attachment = MIMEApplication(f.read())
                # After the file is closed
                attachment[‘Content-Disposition‘] = ‘attachment; filename={}‘.format(basename(file))
                attachments.append(attachment)
            except FileNotFoundError:
                warnings.append(‘WARNING: Attachment {} was not found!‘.format(basename(file)))
    body_template = ‘<pre><font color={}>{}</font></pre>‘
    if warnings:
        body_template = ‘<pre><font color={}>{}</font></pre>‘ + ‘<br><br>‘ + ‘<pre>{}</pre>‘
    msg.attach(MIMEText(body_template.format(text_color, text, ‘\n‘.join(warnings)), ‘html‘, ‘utf-8‘))
    if attachments:
        for attachment in attachments:
            msg.attach(attachment)
    smtp = smtplib.SMTP(mail_server)
    smtp.sendmail(send_from, send_to_list, msg.as_string())
    smtp.close()
    return True
原文:https://www.cnblogs.com/zhangzhihui/p/12809220.html