Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не работает отправка писем / 11 сообщений из 11, страница 1 из 1
07.04.2016, 15:20
    #39210270
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
Здравствуйте! Может кто-то сталкивался со следующей ситуацией:
Есть стандартный рабочий код, который отправляет письмо
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 '''''отправляем письмо
            Dim smtpclient As New SmtpClient
            With (smtpclient)
                .Host = "111.11.1.1"
                .Port = 25
                .EnableSsl = False
                .Credentials = New NetworkCredential("no_reply@mail.ru", "11111")
            End With

            Try
                smtpclient.Send("no_reply@mail.ru", "reply@mail.ru", "Тема", "Тестовое_3_письмо")
            Catch ex As Exception
                MsgBox("Сообщение не отправлено")
            End Try



Проблема в том, что если пройти весь код пошагово (через F11), то код выполняется нормально- письма уходят, а если запустить проект (через F5), или скомпилировать проект и запустить- то сообщения не отправляются. Нашел на форумах одну версию, что сборщик мусора отрабатывает быстрее чем отправка письма, но это не помогает. Чем можно вылечить это?
...
Рейтинг: 0 / 0
07.04.2016, 15:59
    #39210349
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
vb_sub,
DoEvents не пробовали после Send поставить?

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
07.04.2016, 17:19
    #39210425
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
vb_sub, это защита он недоспамеров на почтовом сервере/сервере вашей компании?
...
Рейтинг: 0 / 0
07.04.2016, 20:46
    #39210576
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
vb_subЧем можно вылечить это?
Фиг знает, но попробуйте сначала сформировать Mail, а потом сделать ему smtpclient.Send. У меня с таким подходом проблем нет.


Так же у меня сомнения насчет строки

.Credentials = New NetworkCredential("no_reply@mail.ru", "11111")

Она нужна? Обычно для SMTP достаточно доменной аутентификации по умолчанию
...
Рейтинг: 0 / 0
08.04.2016, 08:03
    #39210696
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
buser,
тестовые ящики
...
Рейтинг: 0 / 0
08.04.2016, 08:49
    #39210721
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
vb_sub,
что за хост такой? 111.11.1.1
...
Рейтинг: 0 / 0
08.04.2016, 09:54
    #39210769
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
ЕвгенийВ,
выдуманный хост для форума- проблема не в нем.
...
Рейтинг: 0 / 0
08.04.2016, 10:26
    #39210800
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
Cat2, пробовал через mail- тоже ничего. Попробую через другие сервера отсылать письма.
...
Рейтинг: 0 / 0
08.04.2016, 10:33
    #39210805
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
vb_sub,
Смотри детали Exception!
...
Рейтинг: 0 / 0
08.04.2016, 10:35
    #39210809
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
ЕвгенийВ,
exception нет- программа отрабатывает до конца корректно.
...
Рейтинг: 0 / 0
08.04.2016, 11:30
    #39210886
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает отправка писем
Нашел следующий костыль- отправка через порт:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
            Dim oMsg As CDO.Message = New CDO.Message()
            Dim iConfg As CDO.Configuration
            Dim oFields As ADODB.Fields
            Dim oField As ADODB.Field

            iConfg = oMsg.Configuration
            oFields = iConfg.Fields

            oField = oFields("http://schemas.microsoft.com/cdo/configuration/sendusing")
            oField.Value = CDO.CdoSendUsing.cdoSendUsingPort

            ' TODO: Replace with the port that you want to use . It must be the same
            ' port that the SMTP server is using.
            oField = oFields("http://schemas.microsoft.com/cdo/configuration/smtpserverport")
            oField.Value = 25

            ' TODO: Replace with your SMTP server.
            oField = oFields("http://schemas.microsoft.com/cdo/configuration/smtpserver")
            oField.Value = "111.11.1.1"

            oFields.Update()
            oMsg.Configuration = iConfg

            oMsg.TextBody = "Test message body."
            oMsg.Subject = "Test SMTP Message Send using port"
            oMsg.From = "no_reply@mail.ru"
            oMsg.To = "reply@mail.ru"

            oMsg.Send()

            oMsg = Nothing
            iConfg = Nothing
            oFields = Nothing
            oField = Nothing



Работает 100%, причем обнаружена следующая особенность- если перед этим костылем попытаться отослать письмо через
Код: vbnet
1.
smtpclient.Send

, то отрабатывает сразу 2 отправки- то есть если
1)только smtpclient- не работает
2)CDO.Message - работает
3)smtpclient+CDO.Message работает сразу 2 отправщика. Может кому-то пригодится.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не работает отправка писем / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]