mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00

This is a wholesale reorganization and editing of the email documentation to make the new API the standard one, and the old API the 'legacy' one. The default is still the compat32 policy, for backward compatibility. We will change that eventually.
56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
#!/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
|
|
|
|
--Pepé
|
|
""")
|
|
|
|
# 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)
|