Программно проверить, что сообщение электронной почты достигло почтового ящика Exchange

У меня есть работа, которая выполняет рассылку электронных писем нашим пользователям, с которой начинается рабочий процесс в нашей компании. Периодически пользователь будет ругаться, что не получил электронное письмо - хотя, когда мы идем к администратору почты, чтобы вытащить отчет об обмене, 10 раз из 10 он находится в их удаленных элементах. :П

Я хотел бы иметь возможность программно проверять, что сообщения, отправленные через .net C # (я думаю, System.Net.Mail), достигли почтового ящика пользователя.

Это exchange 2007, и все сообщения внутренние.


person Dave Harding    schedule 10.04.2009    source источник


Ответы (3)


Вы не можете использовать System.Net.Mail. Вам придется покопаться в API-интерфейсах Exchange, чтобы определить, присутствует ли электронное письмо в чьей-либо учетной записи электронной почты.

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

person Spencer Ruport    schedule 10.04.2009
comment
Извините за задержку с ответом - отпуск мешает :). Похоже, это хороший путь. Спасибо! - person Dave Harding; 21.04.2009

Установите учетную запись для ловли всех отскоков. Таким образом вы будете знать, какие из них достигли, а какие нет. Это лучший способ гарантировать, что электронные письма будут доставлены.

В качестве альтернативы вы можете добавить отчеты о прочтении через заголовки сообщений (установив Disposition-Notification-To). но опять же, пользователь может не читать его ...

person Srikar Doddi    schedule 10.04.2009

Я вижу два способа делать то, что вы хотите:

  • Отправляйте электронные письма с включенным «подтверждением доставки» (не с «уведомлением о прочтении», это может быть отклонено пользователем, как сказал CoddeToGlory). Тогда это просто вопрос мониторинга почтового ящика, который получает эти подтверждения, любым удобным для вас способом: веб-службы Exchange, Outlook + COM или VBA, MAPI, ...

  • Используйте интерфейс PowerShell для Exchange и фиксируйте выходные данные Get-MessageTrackingLog для поиска событий StoreDriver + Deliver.

person Jordij    schedule 25.09.2009
comment
Спасибо за ответ, я иду по маршруту, описанному Спенсером. - person Dave Harding; 25.09.2009