smtpclient를 사용하여 LocalHost IIS 사이트와 함께 메일을 보내지 않습니다.

StackOverflow https://stackoverflow.com/questions/326853

문제

System.net.mail에서 smtpclient를 사용하여 메일을 보내지 않는 로컬 IIS 웹 사이트에서 ASP.NET MVC 앱이 실행 중입니다. 핫 메일 주소로 메일을 보내려고하고 소켓 예외를 얻습니다. 문제가 무엇인지 아십니까?

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 관리자는 내장 계정에 액세스가 있는지 확인할 수 없습니다. 애플리케이션 풀 아이덴티티가 물리적 경로에 대한 액세스를 읽었는지 확인하십시오. 이 서버가 도메인에 결합되고 응용 프로그램 풀 ID가 NetworkService 또는 LocalSystem 인 경우 $가 물리적 경로에 대한 액세스를 읽었는지 확인하십시오. 그런 다음이 설정을 다시 테스트하십시오.

도움이 되었습니까?

해결책

Joe 위의 내 의견에 대한 답변을 바탕으로 로컬 컴퓨터에 SMTP가 활성화되어 있지 않습니다. Vista는 SMTP와 함께 제공되지 않습니다.

따라서 Vista에서 실행되는 제 3 자 SMTP 앱을 설치하거나 다른 앱을 사용하여 보낼 수 있어야합니다.이 경우 Hotmail 계정을 통해 나가는 것을 통해 나가는 것을 보낼 수 있습니다. 나는 Hotmail을 사용하지 않으므로 그것이 될지 모르지만 smtp.hotmail.com 및 귀하의 자격 증명과 같은 것이어야합니다. 기본 계정은 Gmail 계정이므로 Smtp.gmail.com을 통해 사용할 수 있으며 물론 자격 증명을 통해 사용할 수 있습니다.

다른 팁

로컬 컴퓨터를 개발하려면 드롭 폴더를 사용할 수도 있습니다.

http://www.codersbarn.com/post/2008/11/30/aspnet-contact-form.aspx

SMTP를 로컬로 설정하려고하는 대신 Hotmail을 통해 직접 보내도록 SMTP 연결을 구성하지 않겠습니까? Web.config에 구성 요소를 추가하여 모든 것을 활성화하십시오.

편집하다

제 생각에는 이 기사 내가 잠시 뒤로 쓴 것은 당신을 도울 수 있습니다.

smtpclient의 호스트를 명시 적으로 설정해보십시오.

전:
smtpclient mailclient = new smtpclient ();

MailClient.host = "127.0.0.1";

mailclient.send (메시지);

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top