Отправка почты в python с вложением отправила его многократно - PullRequest
0 голосов
/ 21 сентября 2018

Отправляю почту на python с вложением, письмо отправлено нормально, но оно отправлено как три разных письма с вложением в каждом письме.

Как сделать так, чтобы весь файл был одним письмом.

filename = ['GIG.JPG', "facebook.png", "cld.png"]

for n in filename:
    print(n)
    attachment = open(str(n), 'rb')

    part = MIMEBase('application', 'octet-stream')
    part.set_payload((attachment).read())
    encoders.encode_base64(part)
    part.add_header('Content-Disposition', "attachment; filename= " + n)

    msg.attach(part)
    text = msg.as_string()
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(FROMADDR, PASSWORD)

    server.sendmail(FROMADDR, TOADDR + CCADDR, msg.as_string())
    server.quit()      

1 Ответ

0 голосов
/ 21 сентября 2018

Вы перебираете массив имени файла, который содержит 3 элемента, поэтому почта отправляется три раза.

Сделайте что-то подобное

 from email.mime.image import MIMEImage

 for file in filename:
 # Open the files in binary mode.  Let the MIMEImage class automatically
 # guess the specific image type.
     with open(file, 'rb') as fp:
         img = MIMEImage(fp.read())
     msg.attach(img)

Это может работать в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...