Приложение MVC не может отправлять почту через локальный HMailServer
Я строю форму в C#, .NET и MVC. На бэкэнд форма отправит свое содержимое по электронной почте. Для тестирования я использую локальную установку hMailServer
,
Изначально я настроил HMS для запуска как localhost.localdomain
; настройка SMTP для "локального имени хоста" localhost
, Я попытался подключиться к нему через порт 587, вот так:
SmtpClient smtp = new SmtpClient
{
Host = WebConfigurationManager.AppSettings["emailServer"],
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = true,
Credentials = networkCredential
};
Я дважды и трижды проверил, что учетными данными являются пользователь почтового сервера и пароль, которые я установил. Вот они, на случай, если это поможет:
<add key="emailUser" value="user@localhost.localdomain"/>
<add key="emailPassword" value="~~~"/>
<add key="emailServer" value="localhost.localdomain"/>
Когда используешь localhost.localdomain
отправка почты вызывает исключение с внешним сообщением: "Ошибка отправки почты" и внутренним сообщением: "Не удалось разрешить удаленное имя:" localhost.localdomain "."
Поэтому я попытался с помощью companyname.com
, При отправке почты возникает исключение с внешним сообщением: "Ошибка отправки почты" и внутренним сообщением: "Невозможно подключиться к удаленному серверу".
Я ожидаю, что либо моя конфигурация домена HMS неверна, либо моя конфигурация протокола неверна. Документация HMS мне не помогла, но я, возможно, не знал, что искать.
Статус сервераETA hMail показывает ноль обработанных сообщений за неделю, несмотря на все мои тесты.
1 ответ
Вот как я настроил его для разработки: создал запись в файле хоста, как показано ниже:
local.myname.com 127.0.0.1
После этого я открыл командную строку и убедился, что она обновлена. Я проверил это следующим образом:
tracert local.myname.com
Он должен вернуть 127.0.0.1, если запись файла хоста обновлена.
Далее в hmail нам нужно создать новый домен: local.myname.com и добавить адрес электронной почты с паролем. поэтому ваш адрес электронной почты будет выглядеть примерно так: admin@local.myname.com.
Кроме того, заранее необходимо дважды проверить конфигурацию протоколов и диапазон IP-адресов по сравнению с настройкой аутентификации.
В моем случае я настроил блокировку внешних входящих и исходящих сообщений и пропустил проверку подлинности для внутренних сообщений. Так что в основном это то, что вы можете сделать заранее - настройка диапазона IP. Затем, при разработке, вам просто нужно убедиться, что все ваши электронные письма *@local.myname.com и все должно работать.
Также включите вход в hmail, чтобы получить подробную ошибку, которая может помочь решить проблему, потому что справочная документация hmail прекрасно работает с их кодами ошибок.
hMail на самом деле хороший выбор для реальных писем. Для разработки я бы порекомендовал использовать smtp4dev.