我有一份正在运行的工作,它向我们的用户发送电子邮件,从而启动我们公司的工作流程。定期地,用户会上下发誓他们没有收到电子邮件 - 但是,当我们去找邮件管理员提取交换报告时,十有八九是在他们已删除的项目中。:P
我希望能够以编程方式验证通过 .net C#(我认为是 System.Net.Mail)发送的消息是否到达了用户的邮箱。
这是 Exchange 2007,所有消息都是内部消息。
我有一份正在运行的工作,它向我们的用户发送电子邮件,从而启动我们公司的工作流程。定期地,用户会上下发誓他们没有收到电子邮件 - 但是,当我们去找邮件管理员提取交换报告时,十有八九是在他们已删除的项目中。:P
我希望能够以编程方式验证通过 .net C#(我认为是 System.Net.Mail)发送的消息是否到达了用户的邮箱。
这是 Exchange 2007,所有消息都是内部消息。
您不能使用 System.Net.Mail。您必须深入了解 Exchange 的 API 以确定电子邮件是否存在于某人的电子邮件帐户中。
设置一个帐户以捕获所有反弹。通过这种方式,您将知道哪些已到达,哪些未到达。这是确保电子邮件到达的最佳方式。
或者,您可以通过邮件标题添加已读回执(通过设置 Disposition-Notification-To)。但同样,用户可以选择不阅读它......
我看到两种方法可以做你想做的事:
发送带有“交付确认”的电子邮件(不是“已读回执”,用户可以按照 CoddeToGlory 的说法将其关闭)。然后,只需监视通过任何适合您的方式接收这些确认的邮箱:Exchange Web Services、Outlook+COM 或 VBA、MAPI,...
使用 powershell 接口进行 Exchange 并捕获 Get-MessageTrackingLog 的输出以查找 StoreDriver + Deliver 事件。