我在C#
编写了一个程序,该程序连接到POP Server
并使用POP3
命令RETR
从服务器检索原始电子邮件消息字符串。
由于程序检索的电子邮件信息是纯文本格式,所有标题和邮件正文都相同,因此很难从原始字符串中提取每个标题和邮件正文。
有人可以告诉我一个解决方案,我可以将整个原始文本解析为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
.
答案 0 :(得分:6)
经过一番研究后,我可以找到 OpenPop.Net 开源库,该库几乎包含了与POP3服务器通信的所有简便方法。
它非常有用,因为它会将原始电子邮件封装到强类型Message
对象,并且电子邮件的不同部分(包括其任何附件)也可以单独访问。这太棒了!
这是链接:
答案 1 :(得分:1)
我目前正在研究同样的事情。本文包含一个将电子邮件字符串解析为自定义电子邮件对象的方法:
http://dotnetslackers.com/articles/aspnet/Creating-a-Dynamic-Email-Drop-Box-Part2.aspx
能够正确解析所有电子邮件需要大量工作。例如,发送日期字段的格式可以不同,并且此脚本仅捕获一种格式。但这个项目是一个良好的开端。