2016-11-17 2 views
1

사용자 이름과 암호없이 웹 응용 프로그램에서 메일을 보내도록 SMTP 릴레이를 설정하려고합니다. 난 당신이 IIS에서 로컬 설정을 할 수 있고 enter image description here의 Web.config에서 는, 이러한 내 설정입니다 "없음 인증"을 사용하지 않는 것을 읽어사용자 이름, 암호없이 SMTP loally 설정

<appSettings> 
    <add key="SmtpServerAddress" value="localhost" /> 
    <add key="SmtpServerPort" value="25" /> 
    <add key="SmtpServerTimeout" value="30" /> 
</appSettings> 
<system.net> 
<mailSettings> 
    <smtp deliveryMethod="Network" from=""> 
    <network host="localhost" port="25" /> 
    </smtp> 
</mailSettings> 

그리고 이메일을 보내 내 숨김 코드는 다음과 같습니다

SmtpClient sc = new SmtpClient(); 
    sc.Host = "localhost"; 
    sc.Port = 25; 
    sc.UseDefaultCredentials = true; 
sc.DeliveryMethod = SmtpDeliveryMethod.Network; 
try 
    { 
    sc.Send(mm); 
    } 
catch (Exception ex) 
    { 
    throw ex; 
    } 

메일을 보내려면 click 이벤트를 제출할 때 "원격 서버를 찾을 수 없음"이 표시됩니다.

이 문제에 대해 알려 주시겠습니까?

+0

해당 스크린 샷을 변경하려는 경우이 이메일 주소는 여기에서 공유되지 않아야합니다. – Clint

+1

감사합니다. @Clint - 변경되었습니다. – Ron

+0

@Ron 원래 이미지 (편집 섹션에 일치하지 않는 이메일 주소가있는 이미지)를 계속 볼 수 있습니다. –

답변

2

localhost을 추가하고 이메일 전송을 시작할 수 없습니다 (실제로 SMPT 서버가 실행중인 경우는 예외). 여전히 "실제"SMTP 서버가 필요합니다. 이러한 설정은 Web.Config에 기본 SMTP 서버를 추가하는 것 이상입니다.

IIS에서 이러한 설정을 지정하지 않으면 다음과 같은 메일을 보냅니다. 이에 대한 예가있을 수 있습니다.

using (SmtpClient client = new SmtpClient()) 
{ 
    client.Host = "mail.fakedomain.nl"; 
    client.Port = 25; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.UseDefaultCredentials = false; 
    client.Credentials = new NetworkCredential("[email protected]", "abcd123"); 

    //send mail 
} 

하지만 IIS의 기본 설정을 설정하면, 당신은 몇 줄의 코드를 저장이

using (SmtpClient client = new SmtpClient()) 
{ 
    //send mail 
} 

을 할 수 있습니다.

개발 컴퓨터에서 이것을 사용하고 있습니까? 설치할 수있는 경우 hMailServer

+0

감사합니다. @VDWWD, 이렇게 전송 방법을 지정하지 않아야합니까? - smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 사용 된 client.UserDefaultCredentials = true;? – Ron

+0

내 anser를 업데이트하여 희망 사항을 조금 더 명확하게 만들었습니다. 두 경우 모두 결론은 SMTP 서버가 필요합니다. 로컬로 개발중인 경우 공급자의 서비스를 사용할 수도 있습니다. – VDWWD

+0

고마워요 @ VDDWWD, 예, 나는 SMTP 서버 (사용자 이름, psswd)에 대한 자격 증명을 사용할 때 아무런 문제가 없지만 여기에 나의 주요 질문은 사용자 이름과 암호없이 메일을 보내기 위해 SMTP 중계 시스템 사용 여부입니다. – Ron