Не могу использовать smtpclient для отправки почты с сайта localhost iis - PullRequest
4 голосов
/ 29 ноября 2008

У меня на локальном веб-сайте iis запущено приложение asp.net mvc, которое не может отправлять почту с помощью 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, убедитесь, что \ $ имеет доступ на чтение к физическому пути. Затем проверьте эти настройки еще раз.

Ответы [ 4 ]

3 голосов
/ 29 ноября 2008

Судя по вашим ответам на мои комментарии выше, Джо, у вас не включен SMTP на вашем локальном компьютере. Vista не поставляется с SMTP.

Таким образом, вам придется либо установить стороннее SMTP-приложение, которое будет работать в Vista, либо использовать другое приложение для отправки через, в этом случае ваша учетная запись Hotmail может позволить вам отправлять исходящие через него. Я не использую Hotmail, поэтому не знаю, будет ли он или нет, но это должно быть что-то вроде smtp.hotmail.com и ваши учетные данные. Моя основная учетная запись - учетная запись gmail, поэтому я могу использовать ее через smtp.gmail.com и, конечно же, свои учетные данные.

2 голосов
/ 01 декабря 2008

Для разработки на вашем локальном компьютере вы также можете использовать папку для удаления:

http://www.codersbarn.com/post/2008/11/30/ASPNET-Contact-Form.aspx

0 голосов
/ 01 декабря 2008

Попробуйте явно указать хост SmtpClient.

Ex:
SmtpClient mailClient = new SmtpClient ();

mailClient.Host = "127.0.0.1";

mailClient.Send (сообщение);

0 голосов
/ 29 ноября 2008

Вместо того, чтобы пытаться настроить SMTP локально, почему бы вам просто не настроить SMTP-соединение для отправки напрямую через hotmail, просто добавьте элементы конфигурации в web.config, чтобы включить все.

Редактировать

Я думаю эта статья , которую я написал некоторое время назад, может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...