gpt4 book ai didi

c# - OpenPop.NET - 修改电子邮件中的字符

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:46 24 4
gpt4 key购买 nike

我正在使用 OpenPop 库来阅读电子邮件。我遇到的问题是,在阅读电子邮件正文时,库修改了一个字符。请参阅以下示例:

邮件正文:

Diseño

C# 代码:

OpenPop.Pop3.Pop3Client objPOP3 = new OpenPop.Pop3.Pop3Client();
OpenPop.Mime.Message message = default(OpenPop.Mime.Message);
OpenPop.Mime.MessagePart plainTextPart = default(OpenPop.Mime.MessagePart);
string bodyMailTxt = "";

objPOP3.Connect(Host, Port, UseSSL);
objPOP3.Authenticate(User, Password);

message = objPOP3.GetMessage(1);
plainTextPart = message.FindFirstPlainTextVersion();
bodyMailTxt = plainTextPart.GetBodyAsText();

代码 vb:

Dim objPOP3 As New OpenPop.Pop3.Pop3Client
Dim message As OpenPop.Mime.Message
Dim plainTextPart As OpenPop.Mime.MessagePart
Dim bodyMailTxt As String = ""

ObjPOP3.Connect(Host, Port, UseSSL)
ObjPOP3.Authenticate(User, Password)

message = objPOP3.GetMessage(1)
plainTextPart = message.FindFirstPlainTextVersion()
bodyMailTxt = plainTextPart.GetBodyAsText()


bodyMailTxt 值为“Diseãf±o”,它用 f(拉丁文小写字母 F)替换了 ƒ(带钩的拉丁文小写字母 F) .
我必须做些什么才能避免这种情况发生?

最佳答案

通过查看 OpenPop.Mime.MessagePart 类的源代码,它看起来像 plainTextPart.GetBodyAsText(),正在获取这样的文本,返回 BodyEncoding.GetString(Body),其中 BodyEncodingEncoding 类型的公共(public)属性,Body 是包含消息的原始字节数组。

我不知道,也无法真正测试,但可能是消息用于解码文本的默认编码与用于发送文本的编码不同。您可以通过尝试 plainTextPart.Encoding = Encoding.ASCIIplainTextPart.Encoding = Encoding.UTF8plainTextPart.Encoding 查看得到的结果= Encoding.Unicode 在调用 .GetBodyAsText() 方法之前。

MessagePart 源文件链接:

http://hpop.svn.sourceforge.net/viewvc/hpop/trunk/OpenPop/Mime/MessagePart.cs?revision=377&view=markup

关于c# - OpenPop.NET - 修改电子邮件中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13385831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com