2010-01-28 7 views
7

System.Net.Mail.SmtpClient 클래스를 사용하여 회사의 전자 메일 서버를 통해 전자 메일을 릴레이하려고합니다. 메일 서버에 대한 모든 SMTP 연결은 SSL이어야하며 자체 서명 된 인증서를 사용합니다. Outlook의 경우 경고 대화 상자에서 확인을 클릭 할 수 있지만 SmtpClient가 자체 서명 된 인증서를 수락하는 방법을 아는 사람은 누구입니까?자체 서명 된 SSL 인증서로 작업하도록 SmtpClient 가져 오기

Windows Azure 플랫폼에서이 응용 프로그램을 사용할 계획이므로 자체 서명 된 인증서를 신뢰할 수있는 루트로 설치할 수 없습니다.

답변

9

당신은 ServerCertificateValidationCallback 특성을 살펴 수 있습니다

ServicePointManager.ServerCertificateValidationCallback = 
    (sender, certificate, chain, sslPolicyErrors) => true; 

는 그것은 SSL 인증서의 유효성을 검사 할 때 런타임에 의해 호출되는 콜백을 나타냅니다. true을 반환하면 기본적으로 인증서가 유효한지 여부를 신경 쓰지 않는다고 말하면서 -> 항상 동의합니다. 물론 프로덕션 환경에서 자체 서명 된 인증서를 갖는 것은 좋은 생각이 아닙니다.

+0

나는 ServicePoint 각도를 약간 살펴 봤지만 ServicePoint/Members 문서 페이지의 "HTTP 연결에 대한 연결 관리를 제공합니다"에서이 주석을 보았 기 때문에 SMTP에 사용되지 않을 것이라는 인상을 받았습니다. 플러스 내가 그것을 시도하고 콜백에 로그 메시지를 넣어 결코 호출하지. – sipwiz

+4

응용 프로그램의 전역 초기화 섹션에서 이상적으로'SmtpClient' 클래스를 인스턴스화하려는 ** 작업을하기 전에 ** 이것을 넣어야합니다. –

관련 문제