【问题标题】:OpenPop.NET - modifies a character in emailOpenPop.NET - 修改电子邮件中的字符
【发布时间】:2012-11-14 19:23:35
【问题描述】:

我正在使用 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 )。
我必须做些什么才能避免这种情况发生?

【问题讨论】:

  • 您能否将整个消息(IE,电子邮件的源代码)发布到诸如 pastebin 之类的服务上?您也可以尝试邮寄支持邮件列表 hpop-users@lists.sourceforge.net
  • 电子邮件的源代码是什么意思?电子邮件的正文只有“Diseño”一词。
  • 但是标题呢?例如主题、编码、内容类型等。就像您只查看主页的可视部分一样,它背后有源代码(HTML)。这同样适用于电子邮件。在 OpenPop 主页上可以找到introduction
  • 您所请求内容的粘贴箱链接:test mail
  • 使用quoted-printable decoder 解码字符集“iso-8859-1”中的“Dise=C3f=C2=B1o=20”得到“DiseÃf¹o”。 “f”字符未在源代码中编码,因此 OpenPop 无法给出除“f”之外的任何其他答案。其他电子邮件客户端是否显示您的拉丁文“ƒ”?

标签: c# vb.net pop3 openpop


【解决方案1】:

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

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

MessagePart 源文件的链接:

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

【讨论】:

  • 设置字符代码的方法和属性是私有的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 2015-09-27
  • 2013-02-01
  • 2016-02-22
相关资源
最近更新 更多