Smtplib...

Steve Holden sholden at holdenweb.com
Wed Apr 4 12:15:00 EDT 2001


"Vincent A. Primavera" <vincent_a_primavera at netzero.net> wrote in message
news:mailman.986388186.764.python-list at python.org...
> Hello,
> When sending mail with smtplib, how would you attach a file?
>
Here's some code which shows you how to use MimeWriter to build multipart
messages. The graphic is encoded in Base64.

regards
 Steve

import MimeWriter, base64
#
# Writes a multipart mail message: text plus associated graphic
#
mfile = "multimsg.eml"
f = open(mfile, "w")
# Create a MimeWriter
mail = MimeWriter.MimeWriter(f)
mail.addheader("From", "Steve Holden <sholden at holdenweb.com")
mail.addheader("To", """Gentle Reader <bookuser at holdenweb.com>,
     Steve Holden <sholden at holdenweb.com>""")
mail.addheader("Subject", "The Python You Wanted")
mail.addheader("Received", """from thinker [64.134.121.94] by
mail.holdenweb.com
    (SMTPD32-6.04) id A244C78500BA; Fri, 09 Mar 2001 07:33:38 -0500""")
# Mail will be multi-part: First part explains format
part1 = mail.startmultipartbody ("mixed")
part1.write("This is a MIME-encoded message, with attachments. "
"If you are seeing this message your mail program probably cannot "
"show you the attachments. Please try another program, or read 'Web "
"Programming in Python' to see the attached picture."
"""
Sorry ...
Steve Holden
""")
# Second part is intended to be read
part2 = mail.nextpart()
f = part2.startbody("text/plain")
f.write("Here we have a multipart message. This "
"means that the message body must be processed "
"as MIME-encoded content where possible [which "
"it clearly is in Outlook Express]."
"""

regards
 Your Humble Author
""")
# Third part is a graphic, which we encode in base64
part3 = mail.nextpart()
part3.addheader("Content-Transfer-Encoding", "base64")
f = part3.startbody("graphic/gif", [["Name", "python.gif"]])
b64 = base64.encodestring(open("pythonwin.gif", "rb").read())
f.write(b64)
# Never forget to call lastpart!
mail.lastpart()






More information about the Python-list mailing list