2017-07-31 13 views
0

電子メールを送信した後にSMTPをC#で処理する必要がありますか?添付ファイルがなくてもSMTPはC#で処理する必要がありますか?

アプリが起動したときに2回目にSMTP認証エラーが発生します。私はSMTPを処分する必要があるのだろうかと思います。新しいPCでは決して初めてのことですが、同じウィンドウが2回開いていると認証エラーが表示されます。ここに以下のコードがあります。

try{ 
          MailMessage mail = new MailMessage(); 
          SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 

          mail.From = new MailAddress("[email protected]"); 
          mail.To.Add("[email protected]"); 
          mail.Subject = "FeedBack"; 
          mail.Body = "Text "; 

          SmtpServer.Port = 587; 
          SmtpServer.EnableSsl = true; 
          SmtpServer.UseDefaultCredentials = false; 
          SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword"); 

          SmtpServer.Send(mail); 
          SmtpServer.Dispose(); 
         } 
         catch (Exception) 
         { 
          Application.Exit(); 
          this.Close(); 
         } 
        } 
+2

大体の大雑把なルールは、クラスがdisposeメソッドを提供していると思われますが、処分が必要なものがあり、おそらくそれを使うべきです!私はどのように認証エラーが発生するのかわかりませんが、どこでうまく動作する資格証明書があるのでしょうか。実際のエラーメッセージを教えてください。 – Bridge

+1

手動で処理したくない場合は、 'Using(SmtpClient SmtpServer = new SmtpClient(" smtp.gmail.com ")){/ * Your code here * /}'ステートメントを使用してください。 – dcg

+0

@Bridge実際のエラーメッセージ 'SMTPサーバーには安全な接続が必要です。または、クライアントが認証されていません。サーバーの応答は:5.5.1認証が必要です。 ' – Patrick

答えて

0

あなたのエラーメッセージによると、私はこのpost. を提案したり、Googleでメールアカウントを使用して安全性の低いアプリケーションを許可する必要があります。あなたのコードをコピーし、自分のGmailアカウントに変更しました。それは間違いなく働いた。フォームアプリがGmailアカウントにアクセスできるようにするには、these stepsに従ってください。

+0

私はすでにこれらの手順に従いましたが、これはもともと私の問題を修正しました。今はそうではありません。それは、フィードバックフォームがもう一度開かれた後に、これらの投稿に記載されているすべての手順が既に完了しているにもかかわらず、同じ認証エラーが発生したときです。 初めて新しいソフトウェアをインストールすると、正常に動作しますが、2回目に実行するとこのメッセージがスローされます。 – Patrick

関連する問題