我们需要Received:
根据RFC 5321 解析电子邮件标头.我们需要提取邮件已遍历的域\ IP.此外,我们需要确定IP是否是内部IP.是否已经有一个可以提供帮助的库,特别是在C\C++中.
例如,
Received: from server.mymailhost.com (mail.mymailhost.com [126.43.75.123]) by pilot01.cl.msu.edu (8.10.2/8.10.2) with ESMTP id NAA23597; Fri, 12 Jul 2002 16:11:20 -0400 (EDT)
我们需要提取"by"服务器.
谢谢
“已接收”行使用的格式是在RFC 2821中定义的,而regex无法对其进行解析。
(您仍然可以尝试,对于由已知软件生成的头文件的有限子集,您可能会成功,但是当将其附加到现实邮件中发现的一系列奇怪的东西时,它将失败。)
使用现有的RFC 2821解析器,您应该可以,但否则应该会失败,并编写软件来解决该问题。不要在其周围建立任何重要的基础,例如安全系统。
我们需要提取“ by”服务器。
“来自”更有可能被使用。“ by”行中给出的主机名与主机本身一样,因此无法保证它将是可公开解析的FQDN。当然,您不会在那里获得有效的(TCP-Info)。