2013-03-21 21 views
5

smtp.gmail.com aracılığıyla e-posta göndermek için küçük bir program oluşturmaya çalışıyorum, ancak her zaman "İşlem zaman aşımına uğradı" diye soruyor. Ağda çok sayıda çözüm bulunduğunu biliyorum, ancak hiçbiri işe yaramıyor.C# Windows Form Uygulaması - gmail kullanarak e-posta gönder smtp

try 
{ 
    MailMessage message = new MailMessage(); 
    SmtpClient smtp = new SmtpClient(); 

    message.From = new MailAddress("[email protected]"); 
    message.To.Add(new MailAddress("[email protected]")); 
    message.Subject = "Test"; 
    message.Body = "Content"; 

    smtp.Port = 465; 
    smtp.Host = "smtp.gmail.com"; 
    smtp.EnableSsl = true; 
    smtp.UseDefaultCredentials = false; 
    smtp.Credentials = new NetworkCredential("[email protected]", "pwd"); 
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
    smtp.Send(message); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("err: " + ex.Message); 
} 

Bunu çözmenin bir yolu var mı?

+0

Benzer soru: http://stackoverflow.com/questions/32260/sending-email-in-net-through-gmail –

+0

Zaman aşımı değeri büyük olasılıkla düşük olarak ayarlanmış, ayrıca buna da göz atın: http://stackoverflow.com/questions/15249817/send-mail-with-attachment/15250867 # 15250867 465 numaralı bağlantı noktasında olduğu gibi, – TimothyP

+2

Kişisel deneyimden ve sadece yorum yaptığım benzer sorudan bahsetmek istiyorum. Birçok anti-malware yazılımı bu özel aktiviteyi engeller. Bunu kullanarak kişisel olarak kötü amaçlı yazılım buldum. Son kullanıcılara yayın yapıyorsanız alternatifler aramak zorunda kalabilirsiniz. –

cevap

10

Değişim 587 olarak port:

try 
{ 
    MailMessage message = new MailMessage(); 
    SmtpClient smtp = new SmtpClient(); 

    message.From = new MailAddress("[email protected]"); 
    message.To.Add(new MailAddress("[email protected]")); 
    message.Subject = "Test"; 
    message.Body = "Content"; 

    smtp.Port = 587; 
    smtp.Host = "smtp.gmail.com"; 
    smtp.EnableSsl = true; 
    smtp.UseDefaultCredentials = false; 
    smtp.Credentials = new NetworkCredential("[email protected]", "pwd"); 
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
    smtp.Send(message); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("err: " + ex.Message); 
} 
+0

Bağlantı noktası 465 kabul edilebilir – TimothyP

+0

Olmalı, ama test uygulamamın içine girdiğimde zaman aşımına uğradı. 587 olarak değiştirildi ve patladı. – uNople

+0

Hmmm, ilginç. Akılda tutulması gereken bir şey – TimothyP

1

nasıl C# pencerelerde d sürücüsüne mağaza pdf dosyasının e-posta göndermek nasıl uygulama ... cevabı ...

MailMessage mail = new MailMessage(); 
      SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 
      mail.From = new MailAddress(txtFrom.Text.ToString()); 
      mail.To.Add(txtmailTo.Text.ToString()); 
      mail.Subject = "Mail Pdf"; 
      var filename = @"D:/your file path/.pdf"; 
      mail.Attachments.Add(new Attachment(filename)); 
      SmtpServer.Port = 587; 
      SmtpServer.Credentials = new 
      System.Net.NetworkCredential(txtFrom.Text, txtPassword.Text); 
      SmtpServer.EnableSsl = true; 
      SmtpServer.Send(mail); 
olduğunu