2010-02-11 141 views
0

我試圖使用下面的代碼異步發送批量電子郵件。代碼運行良好,電子郵件能夠被髮送,但發送時不顯示「發送電子郵件...」消息,而且btnCancel也不可見。有誰知道爲什麼?發送異步電子郵件

Public Sub SendAsyncMail() 
    Dim mail As New MailMessage() 

    mail.From = New MailAddress("...") 
    mail.[To].Add(New MailAddress("...")) 
    mail.[To].Add(New MailAddress("...")) 
    mail.Subject = "Testing Email" 
    mail.Body = "..." 

    smtpClient.Credentials = New System.Net.NetworkCredential("...", "...") 
    smtpClient.Port = 587 
    smtpClient.Host = "smtp.gmail.com" 
    smtpClient.EnableSsl = True 

    Dim state As [Object] = mail 

    AddHandler smtpClient.SendCompleted, AddressOf smtpClient_SendCompleted 

    Try 
     smtpClient.SendAsync(mail, state) 
     lblMsg.Text = "Sending email..." 
     btnCancel.Visible = True 
    Catch ex As Exception 
     lblMsg.Text = ex.Message 
    End Try 
+0

嘗試在「btnCancel.Visible = True」之後放置「smtpClient.SendAsync(mail,state)」 – 2010-02-11 04:48:17

+0

您沒有給出足夠的上下文來回答這個問題。 – ChaosPandion 2010-02-11 04:49:10

+0

我正在進行異步發送電子郵件的測試。所以,該頁面將只有一個發送按鈕,一個取消按鈕和一個標籤。點擊發送按鈕後,應顯示「正在發送電子郵件...」消息,並應顯示取消按鈕。但是現在,消息沒有顯示,取消按鈕不可見。 – 2010-02-11 05:00:26

回答

1

該按鈕沒有被顯示的事實是一個爭論點。無論如何,他們將無法取消發送該電子郵件,除非您將其保留在某種延遲隊列中。