Python не отправляет электронную почту на несколько адресов

Я не вижу, где я ошибаюсь, я надеюсь, что кто-то может обнаружить проблему. Я хочу отправить электронное письмо на несколько адресов; однако он отправляет его только на первый адрес электронной почты в списке, а не на оба. Вот код:

import smtplib
from smtplib import SMTP

recipients = ['[email protected]', '[email protected]']

def send_email (message, status):
    fromaddr = '[email protected]'
    toaddrs = ", ".join(recipients)
    server = SMTP('smtp.gmail.com:587')
    server.ehlo()
    server.starttls()
    server.ehlo()
    server.login('example_username', 'example_pw')
    server.sendmail(fromaddr, toaddrs, 'Subject: %s\r\n%s' % (status, message))
    server.quit()

 send_email("message","subject")

Кто-нибудь сталкивался с этой ошибкой раньше?

Спасибо за уделенное время.


person Sam Perry    schedule 11.12.2013    source источник


Ответы (2)


Попробуйте использовать этот код без вашего присоединения:

import smtplib
from smtplib import SMTP

recipients = ['[email protected]', '[email protected]']

def send_email (message, status):
    fromaddr = '[email protected]'
    server = SMTP('smtp.gmail.com:587')
    server.ehlo()
    server.starttls()
    server.ehlo()
    server.login('example_username', 'example_pw')
    server.sendmail(fromaddr, recipients, 'Subject: %s\r\n%s' % (status, message))
    server.quit()

 send_email("message","subject")

Надеюсь, поможет!

person Sergio Ayestarán    schedule 11.12.2013

Изменять

toaddrs = ", ".join(recipients)

to

toaddrs = recipients

поскольку

server.sendmail(fromaddr, toaddrs, ...)

ожидает, что toaddrs будет списком адресов электронной почты. (Или, конечно, просто используйте recipients вместо toaddrs.)

person unutbu    schedule 11.12.2013