使用 python 转发 html 电子邮件

Posted

技术标签:

【中文标题】使用 python 转发 html 电子邮件【英文标题】:Forwarding an html email with python 【发布时间】:2014-07-05 19:01:22 【问题描述】:

这是我想要完成的:

    某人(非技术人员)准备了一封 html 电子邮件并将其发送到我的 gmail 帐户。 我检查原始电子邮件(gmail 界面中的“显示原始”)并提取 html 部分,将其保存到文件 original_gmail.html。其 CTE 为 quoted-printable(见下文) 使用这个文件,我准备了一个 MIME 消息,我可以用 python 发送它。

我的框架已经能够发送纯文本和/或 html 邮件,但我无法发送这个特殊编码的 html 文件。在“显示原件”窗口中是这样的:

--001a1133dfb0d17ec804f986e82c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><font color=3D"#073763" face=3D"arial,helvetica,sans-=
serif" style=3D"background-color:rgb(255,255,255)">Dear Family and dear fri=
ends, </font></div><div><div><font style=3D"background-color:rgb(255,255,25=
5)"><font color=3D"#0c343d" face=3D"arial,helvetica,sans-serif"></font><fon=
t color=3D"#073763">=C2=A0</font></font></div>
...
</div>

--001a1133dfb0d17ec804f986e82c--

(这只是html部分,还有Content-Type: text/plain; charset=UTF-8 的另一部分,但我没有问题)

如何使用 python 发送这个特殊的quoted-printable 部分(逐字)?

【问题讨论】:

你尝试过什么,它是如何失败的?为什么你认为这是“特殊编码”?如果您正在调用的代码不准备接受已经编码的正文部分,也许您需要在发送之前对其进行解码?向我们展示您的代码! 【参考方案1】:

标准库中有一个专门用于此的模块 - quopri,它将为您进行解码:

import quopri
txt = """--001a1133dfb0d17ec804f986e82c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><font color=3D"#073763" face=3D"arial,helvetica,sans-=
serif" style=3D"background-color:rgb(255,255,255)">Dear Family and dear fri=
ends, </font></div><div><div><font style=3D"background-color:rgb(255,255,25=
5)"><font color=3D"#0c343d" face=3D"arial,helvetica,sans-serif"></font><fon=
t color=3D"#073763">=C2=A0</font></font></div> ... </div>

--001a1133dfb0d17ec804f986e82c--"""

decoded = quopri.decodestring(txt)
print(decoded)

,将输出:

--001a1133dfb0d17ec804f986e82c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir="ltr"><div><font color="#073763" face="arial,helvetica,sans-serif" style="background-color:rgb(255,255,255)">Dear Family and dear friends, </font></div><div><div><font style="background-color:rgb(255,255,255)"><font color="#0c343d" face="arial,helvetica,sans-serif"></font><font color="#073763"> </font></font></div> ... </div>

--001a1133dfb0d17ec804f986e82c--

【讨论】:

以上是关于使用 python 转发 html 电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Imaplib从带有附件的gmail转发邮件(Python)

如何强制电子邮件程序显示使用 php 在 html 电子邮件中发送的图像?

从 Outlook 电子邮件中提取嵌入的图像

通过 Python Google Cloud Function 发送电子邮件的最佳方式是啥?

如何把电子邮件格式改成HTML格式

使用 PHP 脚本转发电子邮件