diff options
author | R David Murray <rdmurray@bitdance.com> | 2014-02-07 10:55:17 -0500 |
---|---|---|
committer | R David Murray <rdmurray@bitdance.com> | 2014-02-07 10:55:17 -0500 |
commit | 02384bfa9481d7e6276dfa6cf2fcfb0f59012be2 (patch) | |
tree | 9e173714bcbd00f2e47d25be5103df8de74a7356 /Doc/includes/email-alternative-new-api.py | |
parent | aa21297457ef0e5647602e19a89c4b797183c16e (diff) | |
download | cpython-git-02384bfa9481d7e6276dfa6cf2fcfb0f59012be2.tar.gz |
#20477: add examples of using the new contentmanager API.
Diffstat (limited to 'Doc/includes/email-alternative-new-api.py')
-rw-r--r-- | Doc/includes/email-alternative-new-api.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Doc/includes/email-alternative-new-api.py b/Doc/includes/email-alternative-new-api.py new file mode 100644 index 0000000000..eeabf34342 --- /dev/null +++ b/Doc/includes/email-alternative-new-api.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 + +import smtplib + +from email.message import EmailMessage +from email.headerregistry import Address +from email.utils import make_msgid + +# Create the base text message. +msg = EmailMessage() +msg['Subject'] = "Ayons asperges pour le déjeuner" +msg['From'] = Address("Pepé Le Pew", "pepe@example.com") +msg['To'] = (Address("Penelope Pussycat", "penelope@example.com"), + Address("Fabrette Pussycat", "fabrette@example.com")) +msg.set_content("""\ +Salut! + +Cela ressemble à un excellent recipie[1] déjeuner. + +[1] http://www.yummly.com/recipe/Roasted-Asparagus-Epicurious-203718 + +--Éric +""") + +# Add the html version. This converts the message into a multipart/alternative +# container, with the original text message as the first part and the new html +# message as the second part. +asparagus_cid = make_msgid() +msg.add_alternative("""\ +<html> + <head></head> + <body> + <p>Salut!<\p> + <p>Cela ressemble à un excellent + <a href="http://www.yummly.com/recipe/Roasted-Asparagus-Epicurious-203718> + recipie + </a> déjeuner. + </p> + <img src="cid:{asparagus_cid}" \> + </body> +</html> +""".format(asparagus_cid=asparagus_cid[1:-1]), subtype='html') +# note that we needed to peel the <> off the msgid for use in the html. + +# Now add the related image to the html part. +with open("roasted-asparagus.jpg", 'rb') as img: + msg.get_payload()[1].add_related(img.read(), 'image', 'jpeg', + cid=asparagus_cid) + +# Make a local copy of what we are going to send. +with open('outgoing.msg', 'wb') as f: + f.write(bytes(msg)) + +# Send the message via local SMTP server. +with smtplib.SMTP('localhost') as s: + s.send_message(msg) |