2010-08-12 57 views
0

真正簡單的問題(所以我認爲),我只想從表單發送郵件而不必使用Exit()或Restart()。在C#Windows窗體上使用System.Net.Mail發送郵件

我已經通過很多例子看,他們都工作,但不是一個形式,我已經得到了它的工作的唯一辦法是內調用:

MySmtpClient.Send(MyMailMessage); 
MySmtpClient.Dispose(); 

但是,這並不提供.NET 2.0(我的用戶在他們的機器上有)。
所以我嘗試使用

MySmtpClient.SendAsync(MyMailMessage,MyMailMessage);

然後SendCompleted事件處理程序被觸發,但只有當我離開我的形式Application.Exit();

我失去了一些東西簡單被觸發後處置?
謝謝。

+0

你缺少格式化 – Andrey 2010-08-12 18:06:30

回答

0

From ScottGu's blog
From MSDN

它看起來像在.NET 2.0 SmtpClient沒有實現IDisposable。如果它吃你的窗體的資源,怎麼樣:

SmtpClient mySmtpClient = new SmtpClient(); 
MailMessage myMailMessage = new MailMessage(); 
//set up email message 
mySmtpClient.Send(myMailMessage); 
SmptClient = null; 
+0

不,仍然沒有工作=( – ajdams 2010-08-12 18:24:32

+0

@ajdams:也許我誤會......,究竟是什麼,是不是工作嗎?郵件根本不發送嗎?是否只在表單關閉後纔會發送? – AllenG 2010-08-12 18:42:32

+0

正確,只有在關閉表單後才能發送郵件。 – ajdams 2010-08-12 18:44:27