使用python转发html电子邮件

时间:2014-05-17 10:36:35

标签: python email mime

这是我想要完成的事情:

  1. 某人(非技术人员)准备一封html电子邮件并将其发送到我的Gmail帐户。
  2. 我查看原始电子邮件("显示原始"在gmail界面中)并解压缩html部分,将其保存到文件original_gmail.html。这CTE为quoted-printable(见下文)
  3. 使用此文件我准备了一条可以用python发送的MIME消息。
  4. 我的框架已经能够发送纯文本和/或html邮件,但我无法发送这个特殊编码的html文件。在#34; Show original"中看起来像这样。窗口:

    --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 个答案:

答案 0 :(得分:0)

标准库中有一个专门用于该模块的模块-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--