2013-03-21 23 views
5

私はsmtp.gmail.comから電子メールを送信するための小さなプログラムを作成しようとしていましたが、 "操作がタイムアウトしました"というメッセージが表示されます。 ネット上で利用可能なソリューションはたくさんありますが、どれも機能していません。C#Windowsフォームアプリケーション - gmail 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); 
} 

これを解決する方法はありますか?

+0

類似した質問:http://stackoverflow.com/questions/32260/sending-email-in-net-through-gmail –

+0

タイムアウト値はおそらく低く設定されています。これもチェックしてください:http://stackoverflow.com/questions/15249817 /添付ファイル付きメールを送信/ 15250867#15250867ポート465はokです。 – TimothyP

+2

私は個人的な経験と、私がちょうどコメントした同様の質問から指摘したいと思います。多くのマルウェア対策ソフトウェアがこの特定のアクティビティをブロックします。私は個人的にこれを使ってマルウェアを見つけました。エンドユーザーに公開する場合は、代替案を検討する必要があります。 –

答えて

10

変更587への移植:

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

ポート465は受け入れ可能です – TimothyP

+0

私はそれを置くとき私のテストアプリケーションでは、タイムアウトする必要があります。587に変更し、それが働いたブーム。 – uNople

+0

うん、興味深い。 – TimothyP

1

どのようにC#のウィンドウで アプリケーションDドライブに格納されたPDFファイルの電子メールを送信する方法に...答えは...

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); 
関連する問題