使用C#中的imap检查发件人是否有效

时间:2010-08-11 08:57:32

标签: c# .net email imap

我知道可以发送带有虚假地址的电子邮件来冒充其他人。我看到自动发送的电子邮件来自我发给我的朋友的电子邮件地址,但没有写自己。

我知道电子邮件服务器会询问电子邮件提供商他们是否确实发送了邮件,如果不是,则往往会发送垃圾邮件或标记为不受信任。如何在我的应用中访问此数据?我没有选择一个imap库,因为我不知道哪个可以支持这个。

2 个答案:

答案 0 :(得分:1)

imap。

不支持此功能

有些服务器会在邮件的标题中存储这样的信息(例如spamassassin info或SPF检查),因此可以使用任何imap库,但在很大程度上取决于应用程序连接的邮件服务器。

答案 1 :(得分:1)

一般情况下,IMAP无法实现。 IMAP用于阅读电子邮件,而不是用于发送。您可以尝试通过SMTP协议发送电子邮件时伪造电子邮件发件人。

这正是垃圾邮件发件人所做的(以及邮件服务器试图检测到的内容)。

过去很容易。 SMTP对话框如下:

        S: MAIL FROM:<your.friend@example.com>
        R: 250 OK

        S: RCPT TO:<somene@example.com>
        R: 250 OK

        S: DATA
        R: 354 Start mail input; end with <CRLF>.<CRLF>
        S: Blah blah blah...
        S: ...etc. etc. etc.
        S: <CRLF>.<CRLF>
        R: 250 OK

但现在事情变得越来越有趣了。这两者之间仍然存在争议 - 例如:

<强>攻击

尝试在与SMTP服务器通信期间提交false“FROM:”地址。

防御:SMTP服务器可能要求您进行身份验证,并仅允许与您的帐户关联的“来自”地址。

另一次攻击

尝试使用没有此规则的第三方SMTP服务器。

防御(第三方SMTP服务器):仅允许发送带有“来自”域名的电子邮件与“自己”域名匹配。

防御(收件人的SMTP服务器):将SPF记录添加到您的域。此记录包括允许在此域中向发件人发送电子邮件的所有主机。如果电子邮件是从不允许的主机发送的,则会增加垃圾邮件分数或将其删除。

另一次攻击

感染计算机,该计算机允许使用病毒发送指定域的电子邮件并使用它发送电子邮件。

防御:教育用户和/或使用好的防病毒软件。

等等......总有办法如何伪造发件人的电子邮件地址以及如何伪造它。请查看以下链接以获取更多信息: