Pergunta

Eu tenho um asp.net mvc aplicativo em execução em um site IIS local que não está a enviar mensagens usando SmtpClient de System.Net.Mail. Estou tentando enviar um e-mail para o meu endereço hotmail e eu recebo uma exceção de soquete. Qualquer idéia de que o problema pode ser?

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);
            }

Aqui é a exceção:

{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)}

Eu acho que o pool de aplicativo padrão não tem acesso a intepub \ wwwroot. Aqui está o erro que eu recebo ao tentar testar a conexão:

O servidor está configurado para usar autenticação de passagem com uma conta interna para acessar o caminho físico especificado. No entanto, Gerenciador do IIS não é possível verificar se a conta interna tem acesso. Certifique-se de que a identidade pool de aplicativos tem acesso de leitura para o caminho físico. Se este servidor estiver associado a um domínio, bem como a identidade do pool de aplicativos é NetworkService ou LocalSystem, verifique se \ $ leu acesso ao caminho físico. Em seguida, teste essas configurações novamente.

Foi útil?

Solução

Com base em suas respostas às minhas observações acima Joe, você não tem SMTP habilitado em sua máquina local. Vista não vêm com SMTP.

Como tal, você quer ter de instalar um aplicativo SMTP 3o partido que será executado em Vista, ou usar outro aplicativo para enviar via, neste caso, a sua conta do Hotmail pode permitir-lhe enviar saída por meio dele. Não uso Hotmail por isso não sei se ele vai ou não, mas deve ser algo como smtp.hotmail.com e suas credenciais. Minha conta principal é a conta do Gmail, para que eu possa usá-lo via smtp.gmail.com e, claro, as minhas credenciais.

Outras dicas

Para o desenvolvimento em sua máquina local, você também pode usar uma pasta de recebimento:

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

Ao invés de tentar SMTP configuração localmente, por que você não apenas configurar a conexão SMTP para enviar diretamente via hotmail, basta adicionar os elementos de configuração para o web.config para permitir tudo.

Editar

este artigo que eu escrevi há um tempo volta pode ajudá-lo.

Tente explicitamente definindo o anfitrião do SmtpClient.

Ex:
SmtpClient MailClient = new SmtpClient ();

mailClient.Host = "127.0.0.1";

mailClient.Send (mensagem);

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top