Search form

Python: MIME/SMTP

Send a MIME-encoded email in HTML and plain text using Python's smtplib (Python 2.x). Just call 'mailer' with a return address, list of recipients, message subject and body.

import smtplib, string
from email import MIMEMultipart
from email import MIMEText
 
def mailer(strSender, lstEmailRecipients, strEmailSubject, strEmailBody):
    """Compose a message using arguments, pass it to MTA on server"""
 
    # add yourself for testing
    lstEmailRecipients.append('you@yahoo.com')
 
    msg = MIMEMultipart.MIMEMultipart('alternative')
    msg['From'] = strSender
    #msg['To'] = lstEmailRecipients
    msg['Subject'] = strEmailSubject
 
    msgInHTML = """
    <html>
       <head></head>
       <body><font face="Arial">"""
    msgInHTML += strEmailBody
    msgInHTML += """
       </font></body>
    </html>"""
 
    msgPart1 = MIMEText.MIMEText(strEmailBody, 'plain', 'UTF-8')
    msgPart2 = MIMEText.MIMEText(msgInHTML, 'html', 'UTF-8')
 
    msg.attach(msgPart1)
    msg.attach(msgPart2)
 
    smtpserver = smtplib.SMTP("localhost")
    smtpserver.sendmail(msg['From'], lstEmailRecipients, msg.as_string())
    smtpserver.quit()

Categories: