从Python发送HTML电子邮件

2024-04-26 00:21:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过python在unix服务器上发送HTML电子邮件。我需要用p.communicate,因为其他原因。我不想改变这个代码太多,所以我不必修复所有使用这个函数的脚本

我想做的是发送到多个添加。它只对一个有效,但不能对多个有效。我把地址作为一个列表,一个用逗号分隔地址的字符串

html = MIMEText("<html><body>"+content+"</body>", "html")
msg = MIMEMultipart("alternative")
msg['To'] =  email.utils.formataddr(('Recipient', to_address))
msg['From'] = email.utils.formataddr(('Author', 'author@company'))
msg['Subject'] = subject
msg.attach(html)
p = Popen(["/usr/sbin/sendmail", "-f","author@company","-t"], stdin=PIPE)
p.communicate(msg.as_string())

使用

““myemail@mail.com““

不适用于

““colleague1@company.com,colleague2@company.com" ["colleague1@company.com","colleague2@company.com“]


Tags: 服务器comemail地址htmlunixbodymsg
1条回答
网友
1楼 · 发布于 2024-04-26 00:21:13

试着用空格而不是逗号来分隔你的地址。或者,您可以直接将地址列表传递给/usr/sbin/sendmail调用(并从MIMEMultipart结构中省略它们):

email_addresses = ["foo@bar.com", "baz@far.com"]
p = Popen(["/usr/sbin/sendmail",
           "-f", "author@company.com",
           ",".join(email_addresses)] , stdin=PIPE)

相关问题 更多 >