Отказ от ответственности: новичок
Привет, я пытаюсь создать отформатированный отправитель электронной почты.Я хочу, чтобы он мог отправлять электронные письма в указанный пользователем список электронных писем и иметь формат для списка имен, чтобы отправлять каждое отформатированное электронное письмо.Кто-нибудь знает способ сделать это?
Я также хотел бы, чтобы в нем не было форматирования, если в списке нет имени.Поэтому, если в списке нет имени, электронное письмо будет просто отображаться как «Привет, бла и т. Д.»
В настоящее время он отформатирует имя, но отправит только одно электронное письмо и отформатирует любые дополнительные имена из списка на одно электронное письмо (выходит как «Привет, Бен, Дейв»).
У меня есть другая модель, над которой я работаю, которая использует файлы .csv, прежде чем кто-либо предложит такой подход, но я хотел бы иметь модель, использующую списки ввода, хотя бы для того, чтобы увидеть, как иесли это сработает.
Также кредит на кодекс Python, кредит на кредит, причитающийся.
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
host = "smtp.gmail.com"
port = 587
username = "xxx@gmail.com"
password = "xxx"
from_email = username
to_list = input('Please enter emails seperated by a comma: ')
Name_list = input('Please enter names seperated by a comma: ')
email_conn = smtplib.SMTP(host, port)
email_conn.ehlo()
email_conn.starttls()
email_conn.login(username, password)
the_msg = MIMEMultipart('alternative')
the_msg['Subject'] = "Link"
the_msg["From"] = "xxx@gmail.com"
the_msg["To"] = to_list
plain_txt = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.python.org"
html_txt = """\
<html>
<head></head>
<body>
<p>Hi {name}!<br>
How are you?<br>
Here is the <a href="http://www.python.org">link</a> you wanted.<br>
<img src="cid:image1">
</p>
</body>
</html>
""".format(name=Name_list)
fp = open('/Users/xxx/xxx.png', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
msgImage.add_header('Content-ID', '<image1>')
the_msg.attach(msgImage)
part_1 = MIMEText(plain_txt, 'plain')
part_2 = MIMEText(html_txt, "html")
the_msg.attach(part_1)
the_msg.attach(part_2)
print(the_msg.as_string())
from smtplib import SMTP, SMTPAuthenticationError, SMTPException
pass_wrong = SMTP(host, port)
pass_wrong.ehlo()
pass_wrong.starttls()
try:
pass_wrong.login(username, "wrong_password")
pass_wrong.sendmail(from_email, to_list, "")
except SMTPAuthenticationError:
print("Message sent")
except:
print("an error occured")
pass_wrong.quit()
email_conn.sendmail(from_email, to_list, the_msg.as_string())
email_conn.quit()