Я пытаюсь создать приложение, которое отправляет электронную почту на smtp-сервер.
Сервер не установлен фиксированным, но будет проверен в соответствии с частью домена адреса электронной почты, на который должно быть отправлено письмо.
Пример:
Электронная почта: test@stackoverflow.com
Доменная часть: stackoverflow.com
Результат поиска записи MX (командная строка "nslookup -type = mx stackoverflow.com":
stackoverflow.com Предпочтение MX = 30, почтовый обменник = stackoverflow.com.s9b1.psmtp.com
stackoverflow.com Предпочтение MX = 40, почтовый обменник = stackoverflow.com.s9b2.psmtp.com
stackoverflow.com Предпочтение MX = 10, почтовый обменник = stackoverflow.com.s9a1.psmtp.com
stackoverflow.com Предпочтение MX = 20, почтовый обменник = stackoverflow.com.s9a2.psmtp.com
Было бы весьма полезно узнать, было ли сообщение принято почтовым сервером и сообщение было успешно отправлено.
На данный момент я могу получить код ошибки SMTP-сервера (если произошла ошибка (StatusCode 5xx)) с помощью объекта System.Net.Mail.SMTPClient и его функции SendAsync. произошла ошибка, я получаю объект-исключение в событии обратного вызова SMTPClient
Я хорошо знаю, что не каждый почтовый сервер скажет мне, действительно ли почтовый аккаунт существует, а затем отклонит мою почту с кодом ошибки, но вместо этого просто примет сообщение и затем удалит его. Поэтому я был бы признателен за другой метод, чтобы проверить, было ли отправлено письмо (примечание: не прочитано, это будет подтверждение чтения)
Конечной целью будет:
Попробуйте отправить электронное письмо получателю, используя почтовый сервер его доменов, и в случае сбоя выполните действия в соответствии с кодом ошибки (пользователь не существует -> abort / mailserver не ответил -> используйте другой почтовый сервер, если имеется).
Заранее спасибо (и извините за опечатки:))