До ошибок при отправке почты можно регистрировать или до того, как администратор может уведомить о таких ошибках, они должны быть обнаружены!
После тщетного поиска в Интернете подробного описания этого метода .NET SendMail.SendMessage () я подумал, что может быть так же быстро реализовать собственную версию метода отправки почты, может быть, путем бесстыдного копирования этого из CodeProject .
Поэтому, если вы не знаете лучше и не имеете доступа к документации, которая может сообщить вам о кодах возврата (если таковые имеются) метода SendMessage (), который вы используете сейчас, вам сначала нужно переключиться на тот, на который вы можете положиться.
Как только этот метод будет на месте, вам нужно будет проверить возвращаемое значение . Я ожидаю, что у вас может быть числовой код возврата плюс подробный текст («неверный адрес электронной почты», «SMTP не отвечает» ...).
Когда возвращаемое значение указывает на состояние ошибки, вы бы
- Зарегистрируйте это в текстовый файл или
в таблицу базы данных.
Детали могут различаться в зависимости от конкретной таблицы, но с помощью ADO или другого соединения с БД вы бы отправили запрос, например, такой:
"INSERT INTO dbLogs.dbo.tblEmailErrors
(EventTime, EmailAddr, ErrorCode, ErrorMessage)
VALUES ('<some date from say method Now()', '<the email addr>',
<the error code>, '<the error clear text message>' "
Тогда вы бы также уведомили администраторов, я полагаю, только для более серьезных ситуаций (нет необходимости беспокоить их по поводу поддельных адресов электронной почты). Это может быть дилеммой, так как в случае ошибки вы не сможете отправить электронное письмо [администраторам] по тому же каналу ... Это может означать, что вы будете использовать другой SMTP-сервер, если это возможно, на самом сервере. где вы запускаете программу, чтобы ограничить зависимости или использовать другую коммуникационную систему (прямой набор на пейджер ..., сообщение твиттера ...).
-