Я пытался написать программу, которая принимает имена, почтовые идентификаторы, тему и сообщения в виде списка, а затем отправляет их соответствующим образом всем и каждому с персонализированной почтой. Я пробовал пару вещей до даты (например, цикл по smtp, а затем преобразование сообщений и всего в строку), но это не было визуально привлекательным и немного сложным, поэтому я переписал код, но использовал другой подход (показанный ниже). Почему я получаю ошибку? Также есть предложения / рекомендация к коду высоко ценится!
import smtplib
user_email=input("Enter your email id:")
user_pwd=input("Enter your password:")
names_list=['abc','def']
mail_list=['abc@gmail.com','def@gmail.com']
subject_list=['Hi Where are you?','Hi how are your studies?']
messages_list=['Hi! where are you? been searching for you ,contact me asap','YOYOYOYOYOYOYOYOYOOOOO!!!']
def send_mail(mail,name,subject,message):
try:
server=smtplib.SMTP('smtp.google.com',587)
server.ehlo()
server.starttls()
server.login(user_email,user_pwd)
msg='Hi {}\nSubject:{}\n\n{}'.format(name,subject,message)
server.sendmail(user_email,mail,msg)
server.quit()
print("Task Successfull!")
print(msg)
except:
print("Unsuccessfull attempt :(")
for name,mail,subject,message in zip(names_list,mail_list,subject_list,messages_list):
send_mail(mail,name,subject,message)
msg1='{}\n{}\n{}\n{}'.format(name,mail,subject,message)
print(msg1)
Вывод:
Enter your email id:arsaprsa@gmail.com
Enter your password:(hidden)
Unsuccessfull attempt :(
abc
abc@gmail.com
Hi Where are you?
Hi! where are you? been searching for you ,contact me asap
Unsuccessfull attempt :(
def
def@gmail.com
Hi how are your studies?
YOYOYOYOYOYOYOYOYOOOOO!!!
Я определил msg1 только для того, чтобы проверить, правильно ли подходит мой подход или нет, и провести перекрестную проверку. Это не имеет большого значения.
(Я включил менее безопасные приложения в Google на случай, если вам интересно)
Я знаю, что для отправки почты нескольким получателям достаточно сложно (например, использовать msg ["To"] и конвертировать) это в строку) но мне было интересно, есть ли способ выполнить эту задачу с помощью функций.
Спасибо за ваше время и помощь мне!