2012-02-27 109 views
0

我正在写一个SMTP解析器,它需要处理标准smtp以及从不受控制的系统(不包括IMF标题)发送的SMTP邮件。例如,确定SMTP邮件是否具有IMF标头的最佳方法?

标准SMTP与IMF头:

From: "Blah blah blah" [email protected] 
To: [email protected] 
Subject: This is a standard SMTP message 
Date: Mon, 5 Oct 2009 11:36:07 +0530 
MIME-Version: 1.0 
Content-Type: text/plain 
Content-Language: en-us 
Testing testing 1 2 3 

Bastardized SMTP:

Testing testing 1 2 3 

优选地,在C#,但任何语言是好的。 请不要猜测,我需要理解SMTP/IMF规范的人来回应。 我接过来,推测你想要的一切。大声笑

+0

写一个正则表达式并比较每个味精与它(正则表达式有一个特殊字符“^”,它只匹配头部的开头) – user1227804 2012-02-27 21:12:03

+0

所以,坏的情况意味着发件人只包含基本信息但没有信息标题? IMF为您代表什么?因为这不是我在SMTP邮件环境中熟悉的缩写词。 – Joe 2012-02-27 21:13:04

+0

IMF是互联网讯息格式。这全是From:To:SMTP对话期间数据推送开始时的废话。 RFC 2822.我遇到的问题是区分数据是否是头文件或用户输入的文本。几乎所有IMF标题的字段都是可选的,并且可以按任意顺序排列。 – ConditionRacer 2012-02-27 21:49:50

回答

1

除非你真的,真的想编写自己的SMTP解析器;你会希望第三方库提供帮助。我们选择了OpenPop。它运行良好,处理我们抛出的所有事情,并且仍然受到支持。

不,我不隶属于他们。

+0

不是一个坏主意,谢谢。 – ConditionRacer 2012-02-27 21:48:06

+0

我决定去OpenPOP。感谢您的建议! – ConditionRacer 2012-02-28 18:18:09

+0

很高兴帮助!祝你好运。 – AlG 2012-02-28 18:39:35

1

几件事情。

你不想要一个SMTP解析器,你想要一个MIME消息解析器。解析MIME消息并不是一件简单的事情。这里有1000多种破碎的消息格式,或者只是简单的奇怪格式,但仍然符合RFC2822(Mime Message)。

我建议只使用Mime消息解析器(来自codeproject或源代码的任何一个 - 如果你想要一个免费的解析器),或者是一个商业产品。

然后,只需循环浏览标题,看看它们是否符合您的规则。 PS:我已经偏向于aspNetMime,因为我写了它。我不喜欢它。

+0

那么,我正在写一个SMTP,IMF,MIME解析器。但我相信IMF是头部分被调用的部分,MIME扩展了IMF的附件。纠正我,如果我错了,我只读了几天的RFC。你说的没错,我决定和OpenPOP一起使用,MIME在@ss中很痛苦。 – ConditionRacer 2012-02-28 18:17:35

+0

SMTP定义了一个电子邮件信封; IMF和MIME定义内容。 IMF是纯文本的; MIME适用于其他任何事情。 – 2012-11-01 17:23:45

相关问题