2010-02-11 9 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)"를 넣으십시오. –

+0

이 질문에 대한 답변을 얻기에는 충분한 컨텍스트를 제공하지 않습니다. – ChaosPandion

+0

전자 메일을 비동기 적으로 보내는 테스트를 실행하고 있습니다. 따라서 페이지에는 보내기 단추, 취소 단추 및 레이블 만 있습니다. 보내기 버튼을 클릭하면 "이메일 보내기 중 ..."메시지가 표시되고 취소 버튼이 표시되어야합니다. 그러나 이제 메시지가 표시되지 않고 취소 버튼이 표시되지 않습니다. –

답변

1

버튼이 표시되지 않는다는 사실은 논점입니다. 지연된 대기열에 보관하지 않으면 전자 메일을 보내는 것을 취소 할 수 없습니다.