#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']
, принимает список или кортеж? Отлично!