Example #1
0
def construct_email_message(sender, to_list, cc_list, subject, mtext,
                            attachment_list):
    """
    #
    """
    outer = MIMEMultipart()
    outer['From'] = sender
    outer['To'] = ', '.join(to_list)
    outer['Cc'] = ', '.join(cc_list)
    outer['Subject'] = subject
    outer.preample = 'You will not see this in a MIME-aware mail reader.\n'
    outer.epilogue = ''

    # plain text body
    msg = MIMEText(mtext + '\n\n')
    msg.add_header('Content-Disposition', 'inline')
    outer.attach(msg)

    # file attachments
    # outer.add_header('Content-Transfer-Encoding', 'base64')
    for att in attachment_list:
        if not os.path.isfile(att):
            continue
        ctype, encoding = mimetypes.guess_type(att)
        maintype, subtype = ctype.split('/', 1)
        fp = open(att, 'rb')
        msg = MIMEBase(maintype, subtype)
        # msg = MIMEBase('application', 'octet-stream')
        msg.set_payload(fp.read())
        Encoders.encode_base64(msg)
        basename = att.split('/')[-1]
        msg.add_header('Content-Disposition', 'attachment', filename=basename)
        outer.attach(msg)

    return outer