Я не уверен, что вы решили эту проблему, поэтому я публикую код, который работал для меня.
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
import smtplib
msg = MIMEMultipart()
password = "password"
msg['From'] = "risk@gmail.com"
msg['To'] = "game@gmail.com"
msg['Subject'] = "Photos"
text = "Here are the photos.\nCheers,\nLife is complex"
msg_text = MIMEText(text, 'plain')
msg.attach (msg_text)
fp = open('image.png', 'rb')
img = MIMEImage(fp.read())
fp.close()
msg.attach(img)
server = smtplib.SMTP('smtp.gmail.com: 587')
server.starttls()
# Login Credentials for sending the mail
server.login(msg['From'], password)
server.sendmail(msg['From'], msg['To'], msg.as_string())
Кстати, вы включили параметр безопасности Gmail, который обеспечивает «менее безопасный доступ к приложениям» для вашей учетной записи Gmail? Этот параметр позволяет сценарию Python взаимодействовать с вашей учетной записью.