mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
#20477: add examples of using the new contentmanager API.
This commit is contained in:
parent
aa21297457
commit
02384bfa94
3 changed files with 158 additions and 0 deletions
56
Doc/includes/email-alternative-new-api.py
Normal file
56
Doc/includes/email-alternative-new-api.py
Normal file
|
@ -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)
|
Loading…
Add table
Add a link
Reference in a new issue