independensoft.msg不支持特殊字符

前端开发 2026-07-12

我正在尝试使用 independensoft.msg 来生成邮件。我的文本里有一些特殊字符。不幸的是,在打开邮件时,你会发现它没有正确处理这些特殊字符。我尝试将文本编码为utf_8,但这并不起作用。下面是可重现的代码:

from independentsoft.msg import Message
import html

html_body = "<html><body><b>This is a test Ö</b></body></html>"
html_body_with_rtf = "{\\rtf1\\ansi\\ansicpg1252\\fromhtml1 \\htmlrtf0 " + html_body + "}"
rtf_body = html_body_with_rtf.encode("utf_8")


msg = Message()
msg.subject = "Test Ö"
msg.body_html_text = html_body
msg.body_rtf = rtf_body
msg.save("test_mail.msg")

输出的邮件如下:

enter image description here

如你所见,它没有正确处理 Ö 字符。我们如何生成这些包含特殊字符的邮件?

解决方案

在这行

html_body_with_rtf = "{\\rtf1\\ansi\\ansicpg1252\\fromhtml1 \\htmlrtf0 " + html_body + "}"

我看到了 1252,这表明可能需要将编码 cp1252,而不是 utf-8

rtf_body = html_body_with_rtf.encode("cp1252")
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章