Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Отправка письма асинхронно SmtpClient Добавлено: 29.12.12 19:30  

Автор вопроса:  Ahtoxa
Здравствуйте. Подскажите пожалуйста в чём проблема. Отправляю асинхронно письма
Do While
Dim mail As New MailMessage()
mail.From = New MailAddress(tmp(1))
mail.To.Add(tmp3(0))
mail.Subject = tmp4
mail.Body = tmp5

Dim smtp As New SmtpClient(tmp(0))
smtp.Credentials = New NetworkCredential(tmp(2), tmp(3))
smtp.SendAsync(mail, "")
Loop
Msgbox(1)

Если сразу после того как выдало Msgbox(1) закрыть программу то письма не доходят. Письма как бы отправляются в фоновом режиме. И никак не возможно определить когда именно оно отправит все письма. Вот тут обсуждают такую же проблему, но там пример на C, кто бы помог реализовать это на vb.net
http://social.msdn.microsoft.com/Forums/en-AU/winforms/thread/477d9b5b-bc6e-4fe3-9734-820211ae250f

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Ahtoxa



Вопросов: 6
Ответов: 29
 Профиль | | #1 Добавлено: 29.12.12 21:14
Решил проблему. Перед smtp.SendAsync(mail, "";) добавить
  1. AddHandler smtp.SendCompleted, AddressOf sendMail_SendCompleted
  2. smtp.SendAsync(mail, "")

и
  1. Private Sub sendMail_SendCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
  2.         Dim userToken As Object = e.UserState 'This is how you know which send has completed, you pass some identifier in usertoken
  3.  
  4.         'If e.Cancelled Then 'Operation was cancelled
  5.         'Debug.WriteLine("Email cancelled.")
  6.         'End If
  7.  
  8.         'If e.Error IsNot Nothing Then 'An error occured
  9.         'Debug.WriteLine("Error: {0}", e.Error.ToString)
  10.         'Else 'No error occured
  11.         'Debug.WriteLine("Email sent!")
  12.         'End If
  13.         _pool.Release()
  14.         add2()
  15.     End Sub

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам