Изображение вложения для отправки по почте с использованием Python
Возможный дубликат:
Как отправить вложения электронной почты с помощью python
У меня есть работа над sendEmail с помощью Python, я получаю этот код
import smtplib
def SendAnEmail( usr, psw, fromaddr, toaddr):
# SMTP server
server=smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(usr,psw)
# Send
msg="text message ....... "
server.sendmail(fromaddr, toaddr, msg)
server.quit()
if __name__ == '__main__':
# Fill info...
usr='[email protected]'
psw='password'
fromaddr= usr
toaddr='[email protected]'
SendAnEmail( usr, psw, fromaddr, toaddr)
если мне нужно добавить изображение (вложение изображения), как это сделать? у кого есть идея?
Ответы
Ответ 1
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
def SendMail(ImgFileName):
img_data = open(ImgFileName, 'rb').read()
msg = MIMEMultipart()
msg['Subject'] = 'subject'
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
text = MIMEText("test")
msg.attach(text)
image = MIMEImage(img_data, name=os.path.basename(ImgFileName))
msg.attach(image)
s = smtplib.SMTP(Server, Port)
s.ehlo()
s.starttls()
s.ehlo()
s.login(UserName, UserPassword)
s.sendmail(From, To, msg.as_string())
s.quit()
Ответ 2
Прочитайте документы. Последние несколько строк документации smtpblib гласят:
Примечание. В общем, вы захотите использовать функции пакетов электронной почты для создания сообщения электронной почты, которое затем можно преобразовать в строку и отправить через sendmail(); см. электронную почту: примеры.
и указать вам: https://docs.python.org/3/library/email.examples.html
который имеет точный пример для этого.