Как отправить почту нескольким получателям в форме SMTP - PullRequest
0 голосов
/ 08 февраля 2020

Я создал форму, и пользователь может ввести несколько адресов электронной почты, и моя программа затем отправит письмо на адреса электронной почты. Моя программа собирает входные данные, но SMTP отправляет их только на один адрес электронной почты. Я хочу отправить его на несколько адресов электронной почты одновременно.

Вот мой код:

def results():
    userdata = request.form
    quantity = userdata['quantity']
    name = userdata['name']
    email = userdata['email']
    print(email)
    msg = Message(subject="Hello", sender='populargifsontwitter@gmail.com', recipients=[email],
                  body="Hi!" + name + "This is a test email I sent with Gmail and Python!")
    # calling mail and the send method and passing the message
    mail.send(msg)
    return render_template('results.html', quantity=quantity, email=email, name=name)

Редактировать: мне было рекомендовано разделить его.

Вот что я сделал:

email = email.split(",")
    print(email)
    for x in email:
        msg = Message(subject="Hello", sender='populargifsontwitter@gmail.com', recipients= [x], body="Hi!"+name+"This is a test email I sent with Gmail and Python!" )
    #calling mail and the send method and passing the message
        mail.send(msg)

Проблема: теперь электронное письмо отправляется только второму получателю, а не первому. Что я должен сделать и почему он только отправляет его второму получателю?

1 Ответ

0 голосов
/ 10 февраля 2020

Кто-то на Reddit сказал, что была проблема с SMTP-сервером. Они предложили добавить небольшую задержку после отправки до конца l oop, и это сработало!

for x in email:
        msg = Message(subject="Hello", sender='janedoe@gmail.com', recipients= [x], body="Hi!"+name+"This is a test email I sent with Gmail and Python!" )
    #calling mail and the send method and passing the message
        time.sleep(2)
        mail.send(msg)
    return render_template('results.html', quantity = quantity, email = email, name = name)
...