Python3 multipartmime email (text, email, and attachment)
Question: I'm creating some emails in Python and I'd like to have HTML, text, and an
attachment. My code is 'working', though its outputs are shown by Outlook as
EITHER HTML or text, while showing the other 'part' (email or txt) as an
attachment. I'd like to have the robust-ness of both email and text versions
along with the file attachment.

Is there a fundamental limitation or am I making a mistake?

    
    
    #!/usr/bin/env python3
    import smtplib,email,email.encoders,email.mime.text,email.mime.base
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    
    # me == my email address
    # you == recipient's email address
    me = "me@me.com"
    you = "you@you.com"
    
    # Create message container - the correct MIME type is multipart/alternative.
    msg = MIMEMultipart('mixed')
    msg['Subject'] = "msg"
    msg['From'] = me
    msg['To'] = you
    
    # Create the body of the message (a plain-text and an HTML version).
    text = "Hi\nThis is text-only"
    html = """\
    <html> This is email</html>
    """
    
    part1 = MIMEText(text, 'plain')
    part2 = MIMEText(html, 'html')
    #attach an excel file:
    fp = open('excelfile.xlsx', 'rb')
    file1=email.mime.base.MIMEBase('application','vnd.ms-excel')
    file1.set_payload(fp.read())
    fp.close()
    email.encoders.encode_base64(file1)
    file1.add_header('Content-Disposition','attachment;filename=anExcelFile.xlsx')
    
    # Attach parts into message container.
    # According to RFC 2046, the last part of a multipart message, in this case
    # the HTML message, is best and preferred.
    msg.attach(part2)
    msg.attach(part1)
    msg.attach(file1)
    
    composed = msg.as_string()
    
    fp = open('msgtest.eml', 'w')
    fp.write(composed)
    fp.close()
    


Answer: I found this has in fact been answered. Strange how the search feature is less
effective than the 'related' boxes.

[Python: Sending Multipart html emails which contain embedded
images](http://stackoverflow.com/questions/920910/python-sending-multipart-
html-emails-which-contain-embedded-images?lq=1)

