以编程方式验证电子邮件是否已到达Exchange邮箱

时间:2009-04-10 01:54:56

标签: c# exchange-server-2007 system.net.mail

我有一份工作,它会向我们的用户发送电子邮件,从我们公司的工作流程开始。用户会定期发誓他们没有收到电子邮件 - 但是,当我们去邮件管理员提取交换报告时,10次中有10次是他们删除的项目。 :P

我希望能够以编程方式验证通过.net C#(我认为是System.Net.Mail)发送的邮件是否已到达用户的邮箱。

这是Exchange 2007,所有消息都是内部的。

3 个答案:

答案 0 :(得分:2)

你不能使用System.Net.Mail。您必须深入了解Exchange的API,以确定某人的电子邮件帐户中是否存在电子邮件。

http://support.microsoft.com/kb/813349

答案 1 :(得分:1)

设置一个帐户以捕获所有退回。通过这种方式,您将知道哪些已达到,哪些未达到。这是确保电子邮件到达的最佳方式。

或者,您可以通过邮件标题添加读取收据(通过设置Disposition-Notification-To)。但同样,用户可以选择不读它......

答案 2 :(得分:1)

我认为有两种方法可以做你想做的事:

  • 发送带有“送货确认”的电子邮件(不是“阅读收据”,用户可以将其视为CoddeToGlory所说的)。然后就是监控通过它适合您的任何方式接收这些确认的邮箱:Exchange Web服务,Outlook + COM或VBA,MAPI,......

  • 使用powershell界面进行Exchange并捕获Get-MessageTrackingLog的输出,以查找StoreDriver + Deliver事件。