1116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandl# Import smtplib for the actual sending function
2116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandlimport smtplib
3116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandl
429d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murray# And imghdr to find the types of our images
529d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murrayimport imghdr
6116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandl
729d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murray# Here are the email package modules we'll need
829d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murrayfrom email.message import EmailMessage
9116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandl
1029d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murray# Create the container email message.
1129d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murraymsg = EmailMessage()
12116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandlmsg['Subject'] = 'Our family reunion'
13116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandl# me == the sender's email address
14116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandl# family = the list of all recipients' email addresses
15116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandlmsg['From'] = me
1629d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murraymsg['To'] = ', '.join(family)
17116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandlmsg.preamble = 'Our family reunion'
18116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandl
1929d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murray# Open the files in binary mode.  Use imghdr to figure out the
2029d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murray# MIME subtype for each specific image.
21116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandlfor file in pngfiles:
22f9e3cf1f9f6eaefba19593783e1cdf7681d1fa65Berker Peksag    with open(file, 'rb') as fp:
2329d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murray        img_data = fp.read()
2429d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murray    msg.add_attachment(img_data, maintype='image',
2529d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murray                                 subtype=imghdr.what(None, img_data))
26116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandl
27116aa62bf54a39697e25f21d6cf6799f7faa1349Georg Brandl# Send the email via our own SMTP server.
2829d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murraywith smtplib.SMTP('localhost') as s:
2929d1bc0842e5b086813aa7de4ab18f1c192d2291R David Murray    s.send_message(msg)
30