Письма в формате HTML с Python - PullRequest
0 голосов
/ 30 января 2019

Отказ от ответственности: новичок

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

Я также хотел бы, чтобы в нем не было форматирования, если в списке нет имени.Поэтому, если в списке нет имени, электронное письмо будет просто отображаться как «Привет, бла и т. Д.»

В настоящее время он отформатирует имя, но отправит только одно электронное письмо и отформатирует любые дополнительные имена из списка на одно электронное письмо (выходит как «Привет, Бен, Дейв»).

У меня есть другая модель, над которой я работаю, которая использует файлы .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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...