Здравствуйте, t_a_n_k, Вы писали:
___>Однако письмо реально отправляется только при завершении работы приложения. ___>Ткните плиз, носом где грабли. Спасибо.
А когда выстреливает событие SmtpClient.SendCompleted ??
Здравствуйте, ie, Вы писали:
ie>Здравствуйте, t_a_n_k, Вы писали:
___>>Однако письмо реально отправляется только при завершении работы приложения. ___>>Ткните плиз, носом где грабли. Спасибо.
ie>А когда выстреливает событие SmtpClient.SendCompleted ??
Упс.. Сорри, сперва понял, что вы письмо асинхронно посылаете...
А при вызове SmtpClient.Send() сообщение должно трансмититься на smtp сервер и лишь потом происходит возврат.
С SmtpClient.Send() никогда проблем небыло с SmtpClient.SendAsync() были. Почему-то не всегда сообщение доставлялось, т.е. в >99% случаев все было ок, но иногда просто не отправлялось безовсяких сообщений об ошибке и исключений. Боролись так: ждали какой-то интервал времени, Cancel'или и стартовали заново.
Здравствуйте, t_a_n_k, Вы писали:
ie>>А когда выстреливает событие SmtpClient.SendCompleted ?? ___>Вообще не вижу чтобы событие наступало...
Да, я вас сперва не правильно понял, я тут написал уже в ответе на свою мессагу. А вообще, странный какой-то случай. А время отсылки сообщения постоянна? Я имею ввиду, что сообщение всегда отсылается при закрытии приложения или просто отправка происходит долго? Дело ведь еще может быть в SMTP сервере..
Здравствуйте, ie, Вы писали: ie>Да, я вас сперва не правильно понял, я тут написал уже в ответе на свою мессагу. А вообще, странный какой-то случай. А время отсылки сообщения постоянна? Я имею ввиду, что сообщение всегда отсылается при закрытии приложения или просто отправка происходит долго? Дело ведь еще может быть в SMTP сервере..
Отправка происходит имеено при закрытии приложения. Ждал долго, дело точно не в тормозах сервера. Если отправлять вот так (юзать WebMail):
Здравствуйте, t_a_n_k, Вы писали:
___>Привет всем! ___>Никак не пойму почему почта отправляется не по событию... ___>например, пытаюсь отправить письмо по нажатию на кнопку:
Сам с этим не работал, могу лишь предположить. MailMessage объявлен так:
public class MailMessage : IDisposable
Вы Dispose те вызываете. Когда приложение закрывается, то он вызывается GC и только тогда оно уходит.
Кроме всего вышесказанного....
Если ты собрался писать приложение для анонимной отправки писем, то с общеизвестными серваками у тебя такой номер не прокатит, потому как они требуют авторизации... Для этого существует специальный класс.
Здравствуйте, DioNNis, Вы писали:
DNN>Кроме всего вышесказанного.... DNN>Если ты собрался писать приложение для анонимной отправки писем, то с общеизвестными серваками у тебя такой номер не прокатит, потому как они требуют авторизации... Для этого существует специальный класс.
Ребят, а не приведете кусок кода для отправки через mail.ru. Я чего уже только не перепробовал — так письма и не отправляются. Вываливается ошибка, мол не могу отправить письмо.
Подозреваю, что я с credentials что-то не так делаю.
Здравствуйте, 4erniyPlasch, Вы писали:
P>Здравствуйте, DioNNis, Вы писали:
DNN>>Кроме всего вышесказанного.... DNN>>Если ты собрался писать приложение для анонимной отправки писем, то с общеизвестными серваками у тебя такой номер не прокатит, потому как они требуют авторизации... Для этого существует специальный класс.
P>Ребят, а не приведете кусок кода для отправки через mail.ru. Я чего уже только не перепробовал — так письма и не отправляются. Вываливается ошибка, мол не могу отправить письмо.
P>Подозреваю, что я с credentials что-то не так делаю.
P>Спасибо.
Да, действительно, вот так вот (VB) почта отправляется сразу, без закрытия формы:
'---------------------------------------------------------------------------------------------------------------------------------------
Dim mailMsg As New System.Web.Mail.MailMessage
Dim SmtpMail As New Net.Mail.SmtpClient
With mailMsg
.From = String.Format("{0}@###.ru", Replace(My.User.Name, "SPB\", ""))
.To = "user1@###.ru"
.Subject = "Баланс"
.Body = "Выписка:"
.Priority = CType("222", Net.Mail.MailPriority)
End With
System.Web.Mail.SmtpMail.SmtpServer = "SMTP.###.ru"
Try
System.Web.Mail.SmtpMail.Send(mailMsg)
MessageBox.Show("Сообщение было отправлено!", "Email Send Status", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch exp As Exception
MessageBox.Show("Была обнаружена ошибка: " & exp.Message, "...", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
'---------------------------------------------------------------------------------------------------------------------------------------