2013-01-31 20 views
5

Sử dụng không gian tên System.Net.Mail mã được sử dụng như sau.Không thể gửi thư trong C# bằng cách sử dụng Máy chủ thư đi như Gmail/Yahoo sử dụng cổng 465

MailMessage MyMailMessage = new MailMessage("[email protected]", "[email protected]", 

"write your subject Here ", "Hi,This is the test message "); 

MyMailMessage.IsBodyHtml = false; 

NetworkCredential mailAuthentication = new NetworkCredential("[email protected]","xxxxxxxx"); 

    SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 465); 

    mailClient.EnableSsl = true; 

    mailClient.DeliveryMethod = SmtpDeliveryMethod.Network; 

    mailClient.UseDefaultCredentials = false; 

    mailClient.Credentials = mailAuthentication; 

    mailClient.Send(MyMailMessage); 

Sử dụng ngoại lệ hết thời gian mã trên xảy ra nếu sử dụng cổng 465. 25 cổng hoạt động tốt. Trong trường hợp tài khoản yahoo cả 465 và 25 đều không gửi được thư.

Có cách nào 465 cổng có thể được hỗ trợ để gửi thư bằng tài khoản gmail hoặc yahoo.

Refered liên kết sau http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx

là khẳng định rằng Windows Mail sử dụng System.Net.Mail để gửi tin nhắn - wont work với SSL Implicit.

Có giải pháp nào để khắc phục sự cố này không.

Cảm ơn trước

+0

Bạn đang sử dụng khối try/catch? Lỗi gì được ném? – DGibbs

+0

bạn có thể cho chúng tôi biết ngoại lệ bạn đang nhận được không? Cung cấp chi tiết theo dõi ngăn xếp – Cris

+1

Không chắc chắn nếu có, nhưng tôi gửi email với google smpt port 587. Nó hoạt động. –

Trả lời

2

Đây không phải là một câu trả lời cho vấn đề nhưng NET built-in Class thư không hỗ trợ cần thiết chạy ngầm hoặc method.You phải sử dụng các thành phần client SMTP của bên thứ ba cho mục đích này có khả năng cả SSL rõ ràng và ngầm định.

+0

Cảm ơn Cris. Hy vọng rằng lớp thư Net sẽ hỗ trợ SSL Implicit trong các phiên bản tiếp theo. –

Các vấn đề liên quan