使用Python的HTML格式电子邮件

时间:2019-01-30 10:45:01

标签: python python-3.x email format html-email

免责声明:初学者

嗨,我正在尝试构建一个格式化的电子邮件发件人。我希望它能够将电子邮件发送到用户输入的电子邮件列表,并将其格式化为名称列表,以便它发送已格式化的每个电子邮件。有人知道这样做的方法吗?

我也希望它没有列表中没有名称的格式。因此,当列表中没有名称时,电子邮件将仅显示为“嗨!等等”。

当前,它将格式化名字,但是只会发送一封电子邮件,并且会将列表中的所有其他名称格式化为一封电子邮件(显示为“嗨,本·戴夫”)。

在有人建议使用该方法之前,我正在使用另一个使用.csv文件的模型,但是我想使用输入列表作为模型,如果无其他,只看它如何以及是否可以使用。工作。

还应归功于python Codex,应归功于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()

0 个答案:

没有答案