4

我编写了一个程序,C#其中连接到 a并使用commandPOP Server从服务器检索原始电子邮件消息字符串。由于程序检索的电子邮件是纯文本格式,所有标题和邮件正文都相同,因此很难从原始字符串中提取每个标题和邮件正文。POP3RETR

谁能告诉我一个解决方案,通过它我可以将整个原始文本解析为一个System.Net.Mail.MailMessage对象?

以下是示例电子邮件原始字符串:

+OK 1281 octets
Return-Path: <sample@test.in>
Delivered-To: samplenet-sample:in-sample2@test.in
X-Envelope-To: sample2@test.in
Received: (qmail 53856 invoked from network); 22 Sep 2012 06:11:46 -0000
Received: from mailwash18.pair.com (66.39.2.18)
MIME-Version: 1.0
From: "Deepu"
 <sample@test.in>
To: sample2@test.in
Date: 22 Sep 2012 11:41:39 +0530
Subject: TEST Subject
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <20120922061146.2975C11554D@mailwash18.pair.com>


TEST Body

.
4

2 回答 2

6

经过一番研究,我可以找到OpenPop.Net开源库,它几乎包含与 POP3 服务器通信的所有速记方法。

它非常有用,因为它将原始电子邮件消息包装为强类型Message对象,并且电子邮件消息的不同部分(包括其任何附件)也可以单独访问。真是太棒了!

链接在这里:

http://hpop.sourceforge.net/

于 2012-09-24T07:11:03.587 回答
1

我目前正在调查同样的事情。本文包含一种将电子邮件字符串解析为自定义电子邮件对象的方法:

http://dotnetslackers.com/articles/aspnet/Creating-a-Dynamic-Email-Drop-Box-Part2.aspx

需要大量工作才能正确解析所有电子邮件。例如,发送日期字段的格式可以不同,此脚本仅捕获一种格式。但这个项目是一个好的开始。

于 2012-09-22T09:52:14.387 回答