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@example.com'
msg['To'] = 'to@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.
|