| #!/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) |