Программно проверить, что сообщение электронной почты достигло почтового ящика обмена - PullRequest
1 голос
/ 10 апреля 2009

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

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

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

Ответы [ 3 ]

2 голосов
/ 10 апреля 2009

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

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

1 голос
/ 25 сентября 2009

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

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

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

1 голос
/ 10 апреля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...