Невозможно использовать smtpclient для отправки почты с сайта localhost iis
-
11-07-2019 - |
Вопрос
У меня есть приложение asp.net mvc, работающее на локальном веб-сайте iis, которое не может отправлять почту с помощью SmtpClient из System.Net.Mail.Я пытаюсь отправить письмо на свой адрес горячей почты и получаю исключение сокета.Есть идеи, в чем может быть проблема?
using(var message = new MailMessage())
{
message.From = new MailAddress(AdminEmail);
message.To.Add(new MailAddress(to));
message.Subject = subject;
message.Body = body;
message.IsBodyHtml = false;
var mailClient = new SmtpClient();
mailClient.Send(message);
}
Вот исключение:
{System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:25
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)}
Я думаю, что пул приложений по умолчанию не имеет доступа к intepub\wwwroot.Вот ошибка, которую я получаю при попытке проверить соединение:
Сервер настроен на использование сквозной аутентификации со встроенной учетной записью для доступа к указанному физическому пути.Однако диспетчер IIS не может проверить, имеет ли встроенная учетная запись доступ.Убедитесь, что удостоверение пула приложений имеет доступ на чтение к физическому пути.Если этот сервер присоединен к домену, а идентификатором пула приложений является NetworkService или LocalSystem, убедитесь, что \$ имеет доступ на чтение к физическому пути.Затем проверьте эти настройки еще раз.
Решение
Судя по вашим ответам на мои комментарии выше, Джо, у вас не включен SMTP на вашем локальном компьютере. Vista не поставляется с SMTP. Р>
Таким образом, вам придется либо установить стороннее SMTP-приложение, которое будет работать в Vista, либо использовать другое приложение для отправки через него, в этом случае ваша учетная запись Hotmail может позволить вам отправлять исходящие через него. Я не использую Hotmail, поэтому не знаю, будет ли он или нет, но это должно быть что-то вроде smtp.hotmail.com и ваши учетные данные. Моя основная учетная запись - учетная запись gmail, поэтому я могу использовать ее через smtp.gmail.com и, конечно же, свои учетные данные.
Другие советы
Для разработки на вашем локальном компьютере вы также можете использовать папку для размещения сообщений:
http://www.codersbarn.com /post/2008/11/30/ASPNET-Contact-Form.aspx р>
Вместо того, чтобы пытаться настроить SMTP локально, почему бы вам просто не настроить SMTP-соединение для отправки напрямую через горячую почту, просто добавьте элементы конфигурации в файл web.config, чтобы все включить.
Редактировать
Я думаю Эта статья то, что я написал некоторое время назад, может вам помочь.
Попробуйте явно указать хост SmtpClient.
Бывший:
SmtpClient mailClient = новый SmtpClient();
mailClient.Host = "127.0.0.1";
mailClient.Send(сообщение);