System.net.mail이 System.Web.Mail이 작동하는 곳에서 실패하는 이유는 무엇입니까?

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

  •  05-07-2019
  •  | 
  •  

문제

System.net.mail 및 System.web.mail을 모두 얻을 수 있지만 Gmail과 함께 작업 할 수는 있지만 Smtp.att.yahoo.com과 함께 작업 할 수는 없습니다.

내 Web.config 키에서 SMTP 설정을 얻습니다. 이 설정은 System.Web.Mail을 사용하여 보낼 때 작동하지만 System.net.mail에서는 실패합니다.

    <add key="SmtpServer" value="smtp.att.yahoo.com"/>
    <add key="SmtpServerAuthenticateUser" value="ctrager@sbcglobal.net"/>
    <add key="SmtpServerPort" value="465"/>
    <add key="SmtpUseSSL" value="1"/>
    <add key="SmtpServerAuthenticatePassword" value="MY PASSWORD"/>

다음은 내 설정을 잡고 Gmail과 함께 작동하는 코드입니다. att.yahoo와 함께 실패합니다.

        SmtpClient smtp;

        if (!string.IsNullOrEmpty(Util.get_setting("SmtpServer", "")))
        {
           smtp = new SmtpClient(Util.get_setting("SmtpServer", ""));
        }
        else
        {
           smtp = new SmtpClient();
        }


        if (!string.IsNullOrEmpty(Util.get_setting("SmtpServerAuthenticatePassword", "")))
           smtp.Credentials = new System.Net.NetworkCredential(
               Util.get_setting("SmtpServerAuthenticateUser", ""), 
               Util.get_setting("SmtpServerAuthenticatePassword", ""));

        if (!string.IsNullOrEmpty(Util.get_setting("SmtpServerPort", "")))
           smtp.Port = int.Parse(Util.get_setting("SmtpServerPort", ""));

        if (Util.get_setting("SmtpUseSSL", "0") == "1")
           smtp.EnableSsl = true;

        smtp.Send(message);

이것이 내 문제입니까?

http://blogs.msdn.com/webdav_101/archive/2008/06/02/system-mail-with-ssl-to-authenticate-against-port-465.aspx

도움이 되었습니까?

해결책

나는 대답을 배웠다. 정답은:

System.net.mail은 "암시 적"SSL을 지원하지 않기 때문에 "명시 적"SSL 만 있습니다.

다른 팁

System.net.mail을 통한 암시적이고 명백한 SSL 연결에 관한 이전 답변은 절대적으로 정확합니다. 내가이 장애물을 극복 할 수 있었고 지금은 쓸모없는 시스템을 사용할 필요없이 CDO (Collaborative Data Objects)를 사용하는 것이 었습니다.

나는 다른 스택 오버 플로우 포스트에 자세히 설명하고 예를 들었다 (모든 포트에서 C# .NET 오류를 통한 Gmail SMTP) 호기심이 있다면. 그렇지 않으면 KB 기사로 직접 이동할 수 있습니다. http://support.microsoft.com/kb/310212.

도움이 되었기를 바랍니다!

Gimel의 대답은 앞쪽으로 돌아 왔습니다. 그는 새로운 시스템을 사용한다고 말합니다.그물메일 라이브러리이지만 문제는 해당 시스템입니다.그물. 메일은 포트 465와 같은 시스템에서 SSL에 대해 작동하지 않습니다.편물.mail은 작동했거나 작동합니다!

나는 하루 종일 이것과 동일한 설정 시스템에 대해 머리를 때렸다.편물. 메일 작동 및 시스템.그물.mail은 작동하지 않습니다 (적어도 테스트를 거친 SMTP 서버의 경우). 여기서 저는 항상 최선을 다해 Microsoft의 최신 제품으로 업그레이드해야한다고 생각했습니다. :-(

M $ 블로그에 대한 링크는 모든 것을 진술하는 것 같습니다. "System.net.mail은"명시 적 SSL "만 지원합니다. 그리고 나는 내가 암시 적 SSL로 테스트하고있는 SMTP 서버를 가정합니다. (야후 서버 BTW).

새로운 API로 "업그레이드"하는 것은 암시 적 SSL이 필요한 서버가있는 사용자의 기능을 중단 할 것이므로이 경우 "업그레이드"하는 단계가 뒤로 물러나는 것처럼 보입니다. 여전히 경고만으로 컴파일 할 수 있다면, 그 경고 (0618)를 비활성화하고 트럭을 계속 비활성화하십시오. 아, 그리고 당신은 당신의 응용 프로그램이 구성 파일을 통해 구축하고 테스트 한 .NET Framework 버전에 대해 항상 실행되도록 고려할 수 있습니다. m $가 이전 API를 찢어 버린 경우, 당신의 응용 프로그램은 안전합니다.

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