2010-01-28 22 views
7

Şirket e-posta sunucumdan bir e-posta iletmek için System.Net.Mail.SmtpClient sınıfını kullanmaya çalışıyorum. Posta sunucusuna tüm SMTP bağlantıları SSL olmalı ve kendinden imzalı bir sertifika kullanıyor. Outlook için bu uyarı diyaloğuna tıklamanız yeterlidir, fakat hiç kimse kendini imzalı bir sertifikayı kabul etmek için SmtpClient'i elde etmenin bir yolunu biliyor mu?Kendinden imzalı bir SSL sertifikası ile çalışmak için SmtpClient alma

Bu uygulamayı Windows Azure Platformunda kullanmayı planlıyorum, böylece kendinden imzalı sertifikayı güvenilir bir kök olarak kuramayacağım.

cevap

9

Sen ServerCertificateValidationCallback tesiste bir göz alabilir:

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

O bir SSL sertifikasını doğrulamak çalıştığında çalışma zamanı tarafından çağrılan bir geri arama temsil eder. true'u döndürerek, sertifikanın geçerli olup olmadığını umursamadığını söylersiniz -> her zaman bunu kabul edersiniz. Tabii ki üretim ortamında kendinden imzalı sertifikalara sahip olmak iyi bir fikir değildir.

+0

ServicePoint açısına biraz baktım ama bu yorumu ServicePoint/Üyeler dokümanı sayfasında gördüm "HTTP bağlantıları için bağlantı yönetimi sağlar" böylece SMTP için kullanılmayacağı izlenimini edinirim. Ayrıca denediğimde ve geri aramada bir günlük mesajı koyduğumda asla denemez. – sipwiz

+4

Bu ** uygulamasından önce **, uygulamanızın bazı genel başlatma bölümünde, ideal olarak "SmtpClient" sınıfını başlatmaya yönelik girişimlerde bulunmanız gerekir. –

İlgili konular