2017-01-04 21 views
1

.NETアプリケーションから電子メールを送信しようとしています。ASP.NET C# - Gmail/Yahoo Live SMTPサーバーから電子メールを送信できない

gmailとyahoo(yahooのホストを変更しました)とメールを使用しないでポートを変更して、新しいアカウントを作成することからすべてを試しました。セキュリティの低いアプリケーションを許可するために、 {"SMTPサーバーが安全な接続を必要とするか、クライアントが認証されていませんでした。サーバーの応答は5.7.1でした"}

これは私のコードです:

SmtpClient smtpClient = new SmtpClient(); 
     System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("[email protected]", "pw"); 
     smtpClient.Credentials = credentials; 
     smtpClient.UseDefaultCredentials = false; 
     smtpClient.Port = 587; 
     smtpClient.EnableSsl = true; 
     smtpClient.Host = "smtp.gmail.com"; 
     smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 

     MailMessage mail = new MailMessage(); 
     mail.From = new MailAddress("[email protected]"); 
     mail.To.Add("[email protected]"); 
     mail.IsBodyHtml = true; 
     mail.Subject = txtSubject.Text; 
     mail.Body = txtBody.Text; 
     try 
     { 
      smtpClient.Send(mail); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
     finally 
     { 
      if (mail != null) 
      { 
       mail.Dispose(); 
      } 
     } 

ソリューション:人々は目に問題がある可能性がありますよう将来、ソリューションはコード行を削除することでした:smtpClient.UseDefaultCredentials = false;

+0

キャッチされた例外に対して 'throw ex;'を実行しないでください。 'throw;'を使うだけでスタックトレースを保存できます。 – mason

+0

私はExをExだけに変更するべきですか? –

+0

こんにちは..これは...あなたがそれを実行するサーバーでブラウザとGmailをオペルしてください。それからアクセスすることができるようにクロムのセキュリティオプションを設定しなければなりません。 –

答えて

0
smtpClient.UseDefaultCredentials = false;    
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("[email protected]", "pw"); 
smtpClient.Credentials = credentials; 

このような順序でこれらの行を使用してください。

+0

これを行うことは、方法に違いをもたらしました。最初のエラーではなく、エラーが表示されます。メールを送信できませんでした。 –

+2

うわー、それを修正しました。私はsmtpClient.UseDefaultCredentials = falseを削除してしまいました。今はそれが動作します。ありがとう:) –

関連する問題