[issue45994] Add simple usage to email module

Taiga Katarao report at bugs.python.org
Mon Dec 6 11:51:58 EST 2021


Taiga Katarao <taiga4562 at gmail.com> added the comment:

There are the simplest example to send text email and a little bit complicated example to an email with some files.

However, beginners like me want simple example to create an email composed of the combination of multipart/alternative and multipart/mixed.

There are many web sites to explain sending an email composed of multipart/alternative and multipart/mixed, but all of them use MIMEText and MIMEMultipart, which can be replaced and simplified with EmailMessage like below.

```
import smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg['From'] = 'from at example.com'
msg['To'] = 'to at example.com'
msg['Subject'] = 'Subject'

msg.add_alternative('Hello, world.', subtype='text')
msg.add_alternative('<h1>Helo, world.</h1>', subtype='html')
with open('example.pdf', 'rb') as f:
    msg.add_attachment(
        f.read(),
        maintype='application',
        subtype='pdf',
        filename='example.pdf'
    )

with smtplib.SMTP('SMTP_HOST', 'SMTP_PORT') as smtp:
    smtp.starttls()
    smtp.login('USER', 'PASSWORD')
    smtp.send_message(msg)
```

Of cause I know we can obtain the code above from the combination of existing example codes, but it's a little bit difficult.

I guess the reason why they cannot find simple way partially because the official documentation does not provide example.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue45994>
_______________________________________


More information about the Python-bugs-list mailing list