2009-04-10 6 views
1

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

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

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

+1

Нет веской причины для -1. +1 –

ответ

2

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

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

+0

Извините за задержанный ответ - отпуск мешает :). Это похоже на хороший маршрут. Спасибо! –

1

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

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

1

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

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

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

+0

Спасибо за ответ, я иду по маршруту, описанному Спенсером. –

 Смежные вопросы

  • Нет связанных вопросов^_^