2017-10-11 15 views
1

プログラミングの新機能、私は添付ファイル付きのメールを送信し、完了したら自動的に閉じるようにしたい。以下のコードを使用していますが、アップスロー「例外未処理:System.ObjectDisposedException: 『を破棄されたオブジェクトにアクセスできません。』」あなたがフォームを閉じようとしているので、これが起こる電子メールアプリケーションエラー:廃棄オブジェクトにアクセスできません(C#)

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Net; 
using System.Net.Mail; 

namespace Automail 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     { 
      MailMessage message = new MailMessage("[email protected]", "[email protected]"); 
      message.To.Add("[email protected]"); 
      message.Subject = "Exeption Reports"; 
      message.Body = @"Find attached generated exception reports."; 
      message.Attachments.Add(new Attachment("C:/New folder/STOCKS_NOT_MOVED.txt")); 
      SmtpClient client = new SmtpClient(); 
      client.Host = "smtp.xyz.com"; 
      client.Port = 25; 
      client.Credentials = new NetworkCredential("[email protected]", "password"); 
      client.EnableSsl = true; 

      // client.UseDefaultCredentials = true; 

      try 
      { 
       client.Send(message); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Exception caught in SendEmail(): {0}", 
         ex.ToString()); 
       MessageBox.Show("Goodbye!"); 
      } 
      Close(); 
     } 
    } 
} 

}

+0

のようにそれを使用することができ、通常のクラスにしてみてください、

class MailHelper { public void SendMail() { MailMessage message = new MailMessage("[email protected]", "[email protected]"); message.To.Add("[email protected]"); message.Subject = "Exeption Reports"; message.Body = @"Find attached generated exception reports."; message.Attachments.Add(new Attachment("C:/New folder/STOCKS_NOT_MOVED.txt")); SmtpClient client = new SmtpClient(); client.Host = "smtp.xyz.com"; client.Port = 25; client.Credentials = new NetworkCredential("[email protected]", "password"); client.EnableSsl = true; // client.UseDefaultCredentials = true; client.Send(message); } } 

をフォームを必要としません。まず、電子メールがメールメッセージを使用して送信しているかどうかを確認し、フォームを閉じる必要があります。フォームを閉じたりメールを送信したりすることに問題がありますか? –

+0

をご覧ください。https://stackoverflow.com/questions/2204698/send-email-with-attachment-from-winforms-app –

+0

こんにちは、メールが送信されます。問題はフォームを閉じることです。ありがとう。 – Ikenna

答えて

0

コンストラクタ。 InitializeComponentは私が信じるコンストラクタから呼び出されます。

は実際にあなたがuはthis.Close()の代わりに、閉じる()を試してみました new MailHelper().SendMail();

関連する問題