电子邮件包含 UTF-8 编码的 XML 文件附件。我正在寻找一种从 ASP.NET/Mono MVC4 应用程序中读取此附件的方法。我尝试按照如何使用 OpenPop使用代码保存电子邮件附件中所述使用 openpop
using (OpenPop.Pop3.Pop3Client client = new Pop3Client())
{
client.Connect("mail.company.com", 110, false);
client.Authenticate("user", "pass", AuthenticationMethod.UsernameAndPassword);
if (client.Connected)
{
int messageCount = client.GetMessageCount();
List<Message> allMessages = new List<Message>(messageCount);
for (int i = messageCount; i > 0; i--)
{
var msg = client.GetMessage(i);
var att = msg.FindAllAttachments();
foreach (var ado in att)
{
var xml = ado.GetBodyAsText();
结果 xml 字符串重音字符被转换为 tow ?? 分数。
XXXLTEC O=C3=9C
在下面的消息中显示为XXXLTEC O??
xml 变量。正确的结果是XXXLTEC OÜ
如何正确读取 UTF-8 附件?我还没有在 OpenPop 中找到任何正确转换它的选项。
消息中的 XML 附件显示为
------=_NextPart_000_0066_01D0302C.83D6EFA0
Content-Type: text/xml;
name="tapitolemas.xml"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="tapitolemas.xml"
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<E-Document>
<Header>
<DateIssued>2015-01-02T13:27</DateIssued>
<SenderID>-</SenderID>
<ReceiverID>1COL</ReceiverID>
</Header>
<Document>
<DocumentType>invoice</DocumentType>
<DocumentFunction>original</DocumentFunction>
<DocumentParties>
<BuyerParty context=3D"partner">
<PartyCode>1COL</PartyCode>
<Name>XXXLTEC O=C3=9C</Name>