IIS SMTP邮件检查

IIS SMTP邮件检查,iis,smtp,Iis,Smtp,是否有办法在邮件到达IIS上的SMTP之前查看或查看邮件。这不是Exchange服务器,它只是在运行SMTP。我正在尝试查看是否可以查看邮件,然后将其传递给SMTP 谢谢 Edit~我想知道是否有办法绑定到默认的SMTP listner并截获邮件,然后将其传递,而不是添加另一个listner 第二次编辑~好的,这是我的问题。我的交换箱前面有一个垃圾邮件过滤器,不幸的是(由于软件设计),当涉及到“目录捕获”时,该过滤器受到限制。这是一个检查电子邮件地址是否存在于AD中的过程,如果不存在,则删除邮件

是否有办法在邮件到达IIS上的SMTP之前查看或查看邮件。这不是Exchange服务器,它只是在运行SMTP。我正在尝试查看是否可以查看邮件,然后将其传递给SMTP

谢谢

Edit~我想知道是否有办法绑定到默认的SMTP listner并截获邮件,然后将其传递,而不是添加另一个listner


第二次编辑~好的,这是我的问题。我的交换箱前面有一个垃圾邮件过滤器,不幸的是(由于软件设计),当涉及到“目录捕获”时,该过滤器受到限制。这是一个检查电子邮件地址是否存在于AD中的过程,如果不存在,则删除邮件。如果广告中不存在一个不好的地址,我当前的过滤器会删除邮件。我和供应商谈过了,他们现在无能为力。我正在寻找将一个应用程序放在这个过滤器前面,它将截获(打开、读取、解析)邮件,验证地址,然后将电子邮件传递给过滤器进行额外扫描。然后我将在他们的软件中关闭此功能。别误会,他们的过滤器工作得很好,但有一个例外,我必须修复,因为我有大量电子邮件发送给我的域中不存在的用户

在.Net中,您可以告诉SmtpClient将电子邮件发送到SMTP服务正在监视的其他文件夹。这样你就可以检查每封邮件,然后将其移动到真正的收件文件夹中。(请参阅)

您可以编写自己的代理SMTP服务,并连接到该服务以发送邮件。您可以将所有邮件直接转发到实际的SMTP服务,并将所有响应传回。然后你可以偷看所有这些信息并相应地处理它们


对于您所追求的可能有点过火,但编写代码相当简单,因为您不需要了解任何有关协议的信息,因为您只是一个代理。

如果您使用的是.NET 2.0,则可以将SMTP会话记录到一个文件:

更新:

看看这个问题:

从您的编辑:

“我想知道是否有一种方法可以绑定到默认SMTP侦听器并截获邮件,然后将其传递?”

…从您的以下评论中:


“我希望在SMTP收到实际邮件之前检查它。”

我不确定您是否完全理解SMTP协议。SMTP消息不仅仅是单一的fire and forget实体。SMTP是基于会话的,客户端和服务器之间有一个会话,消息只是其中的一部分。跟踪方法(链接到上面)将记录客户端和服务器之间的整个交换,并在传递消息之前拦截整个消息。另一种选择是代理服务器或模拟服务器,仍然需要应用程序参与SMTP客户端/服务器交换。与您的需求最接近的解决方案是使用类似于上面答案中链接的内容


Kev

IIRC,您仍然可以为IIS SMTP服务编写事件接收器(即使它不是完整的exchange)。我这么做已经很多年了,但是你可能想在谷歌上搜索“exchange事件接收器”看看这是否有帮助。

像Ethereal这样的东西似乎可以让你完成请求的嗅探部分。我不清楚你所说的“拦截”和“传递”是什么意思。您是想过滤一些流量,还是只是将流量延迟足够长的时间,以便在传递之前进行检查,还是两者都要进行

我正在尝试检查SMTP服务器的入站邮件,然后将其传递。我希望先截获邮件,而不是添加另一个SMTP listner。我希望在SMTP收到邮件之前检查实际邮件。我已编辑了我的帖子并添加了我的目标。再次感谢您的帮助。这完全改变了局面:)我已经更新了我的答案,提供了一些可能有用的信息。我已经编辑了我的帖子并添加了我的目标。再次感谢您的帮助。我已经编辑了我的帖子并添加了我的目标。再次感谢您的帮助。