2016-06-29 10 views
0

gmail SMTPサーバーの助けを借りてgmailアカウントを使用して電子メールを送信するためにC#でソフトウェアをコーディングしようとしています。コンパイルエラーは発生しませんが、コードは正しくても実行時に例外がスローされます。ここでWindowsアプリケーションでgmail SMTPサーバーを使用して電子メールを送信する際にエラーが発生する

は私のコードです:ここでは

using System.Net; 
using System.Net.Mail; 

private void button1_Click(object sender, EventArgs e) 
{ 
    if (from.Text != "" && password.Text != "" && to.Text != "" && subject.Text != "" && receive.Text != "") 
    { 
     try 
     { 
      MailMessage mail = new MailMessage(from.Text, to.Text, subject.Text, receive.Text); 

      SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 
      SmtpServer.Port = 465; 
      SmtpServer.Credentials = new System.Net.NetworkCredential(from.Text, password.Text); 
      SmtpServer.EnableSsl = true; 

      SmtpServer.Send(mail); 

      MessageBox.Show("Mail Sent"); 
     } 
     catch (Exception ex) 
     { 
      //MessageBox.Show(ex.ToString()); 
      textBox6.Text = ex.ToString(); 
     } 
    } 
    else 
    { 
     MessageBox.Show("Fill all fields, then press Send button"); 
    } 

は私が手例外です:

System.Net.Mail.SmtpException:SMTPサーバは、セキュアな接続が必要で、クライアントが認証されませんでした。サーバーの応答は、5.5.1認証が必要でした。 System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCodeからstatusCode、文字列の応答)で

System.Net.Mail.MailCommand.Send(SmtpConnection CONN、ブールallowUnicode、からbyte []コマンド、MailAddressで
でより多くを学びます)Gmail_Senderで
System.Net.Mail.SmtpTransport.SendMail(MailAddress送信者、受信者MailAddressCollection、文字列deliveryNotify、ブールallowUnicode、SmtpFailedRecipientException &例外)System.Net.Mail.SmtpClient.Sendで
(はMailMessageメッセージ)で
C:\ Users \ junaidの.Form1.button1_Click(Object sender、EventArgs e)

+0

Gmailアカウントに二要素認証が必要ですか?その場合は、代わりにアプリパスワードを作成する必要があります。 – howcheng

答えて

1

GmailはSMTP送信用のポート465をサポートしていません。

あなたはポート彼らはIPアドレスについて非常にうるさいですので、彼らはおそらく、とにかくあなたに話すことはありません、と述べた587

を使用する必要があります。あなたがダイナミックレンジにいる場合は、正しく行っても機能しない可能性があります。

IO.IOException:トランスポート接続からデータを読み取れません:net_io_connectionclosed

エラーメッセージは、Googleがあなたと話をして接続を終了したくないことを示しています。

+0

そのポートでも同じ問題587 –

+0

まったく同じエラーメッセージが表示されますか? –

+0

System.Net.Mail.SmtpTransport.SendMail(MailAddress送信者でSystem.Net.Mail.MailCommand.Send(SmtpConnection CONN、バイト[]コマンド、ブールallowUnicode、からMailAddress) においてYES sCheckResponse(SmtpStatusCodeからstatusCode、文字列応答) あなたが前に持っていた、閉じた接続エラーとは完全に違う、MailAddressCollection者、文字列deliveryNotify、ブールallowUnicode、SmtpFailedRecipientException&例外)System.Net.Mail.SmtpClient.Sendで (はMailMessageメッセージ) " –

関連する問題