From bbc4fc29336437650f8a10d87cdd2314c77d8278 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 2 Feb 2008 10:49:58 +0000 Subject: Add email example how to send a multipart message. Written for GHOP by Martin Matejek. --- Doc/includes/email-alternative.py | 48 +++++++++++++++++++++++++++++++++++++++ Doc/library/email-examples.rst | 11 ++++++--- 2 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 Doc/includes/email-alternative.py diff --git a/Doc/includes/email-alternative.py b/Doc/includes/email-alternative.py new file mode 100644 index 0000000..d941323 --- /dev/null +++ b/Doc/includes/email-alternative.py @@ -0,0 +1,48 @@ +#! /usr/bin/python + +import smtplib + +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText + +# me == my email address +# you == recipient's email address +me = "my@email.com" +you = "your@email.com" + +# Create message container - the correct MIME type is multipart/alternative. +msg = MIMEMultipart('alternative') +msg['Subject'] = "Link" +msg['From'] = me +msg['To'] = you + +# Create the body of the message (a plain-text and an HTML version). +text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.python.org" +html = """\ + + + +

Hi!
+ How are you?
+ Here is the link you wanted. +

+ + +""" + +# Record the MIME types of both parts - text/plain and text/html. +part1 = MIMEText(text, 'plain') +part2 = MIMEText(html, 'html') + +# 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(part1) +msg.attach(part2) + +# Send the message via local SMTP server. +s = smtplib.SMTP('localhost') +# sendmail function takes 3 arguments: sender's address, recipient's address +# and message to send - here it is sent as one string. +s.sendmail(me, you, msg.as_string()) +s.close() diff --git a/Doc/library/email-examples.rst b/Doc/library/email-examples.rst index 64a9944..f606f9b 100644 --- a/Doc/library/email-examples.rst +++ b/Doc/library/email-examples.rst @@ -16,18 +16,23 @@ pictures that may be residing in a directory: Here's an example of how to send the entire contents of a directory as an email -message: [1]_ +message: [1]_ .. literalinclude:: ../includes/email-dir.py -And finally, here's an example of how to unpack a MIME message like the one +Here's an example of how to unpack a MIME message like the one above, into a directory of files: .. literalinclude:: ../includes/email-unpack.py +Here's an example of how to create an HTML message with an alternative plain +text version: [2]_ + +.. literalinclude:: ../includes/email-alternative.py + .. rubric:: Footnotes .. [1] Thanks to Matthew Dixon Cowles for the original inspiration and examples. - +.. [2] Contributed by Martin Matejek. -- cgit v0.12