Проблема с Python при отправке электронных писем разным получателям

#python #email #sendmail

#python #Адрес электронной почты #отправить почту

Вопрос:

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

Пример:

#Я определяю это первое сообщение [‘to’] = 0

while count <5: глобальное сообщение [‘to’] #Проблема в том, что это неправильный способ сделать его глобальным

 if something = something:
  msg['to'] = "john@gmail.com"
  #and do stuff to send the email
else:
  print ("something")

if something = something:
  msg['to'] = "elon@gmail.com"
  #and do stuff to send the email
else:
  print ("something")
 

Как я могу изменить msg [‘to’] на глобальную переменную и изменить ее внутри кода на разные электронные письма, в зависимости от того, какие данные отображает веб-сайт?
PS! выполнение «global msg» в начале не устраняет проблему.

Комментарии:

1. Я думаю, что есть только одно to поле, и вам нужно поставить точки с запятой ; между именами.

2. Я понимаю это, но как я могу изменить поле msg [‘To’], чтобы я мог изменить получателей электронной почты в своем коде, как показано?

3. Ваш код неполон, поэтому трудно дать вам совет. Обычно словарь является изменяемым, поэтому, если вы передаете его в функцию в качестве параметра, вы можете вносить в него изменения.

4. Решение: def sendMail(recipients, content): msg = EmailMessage() msg['Subject'] = '' msg['From'] = EMAIL_ADDRESS msg['To'] = recipients msg.set_content(content) with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp: smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD) smtp.send_message(msg)

5. Итак msg['To'] , принимает список или кортеж? Отлично!