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