I am trying to send Email
But I am getting this Error.
The message could not be sent to the SMTP server. The transport error code was 0x80040217. The server response was not available
any one having any idea about it please Help me
asked Feb 6, 2012 at 7:52
3
Discovered that you can also get this error when Gmail’s security settings don’t allow messages to be sent from the address you intend to use. I had to enable access for less secure apps for my account in question by:
- Logging into the address you want to use for sending email from Excel.
- Visit the page https://www.google.com/settings/security/lesssecureapps
- Click Enable Less Secure Apps.
- Click Done.
answered Nov 4, 2014 at 3:58
Jacob FinkJacob Fink
1911 silver badge2 bronze badges
1
It’s caused by a wrong username or password for the SMTP server and
usually means that the server has disabled your account for spamming i
you’ve sent 1500 mails
answered Feb 10, 2014 at 18:31
2
Thanks for your replies, it worked! it was because I didn’t have this option enabled:
https://www.google.com/settings/security/lesssecureapps
In case somebody needs it, this is the VBScript code I’m using in Qlikview:
SUB SendMail
Dim objEmail
Const cdoSendUsingPort = 2 ' Send the message using SMTP
Const cdoBasicAuth = 1 ' Clear-text authentication
Const cdoTimeout = 60 ' Timeout for SMTP in seconds
mailServer = "smtp.gmail.com"
SMTPport = 465 '25 'SMTPport = 465
mailusername = "marcos.esgu**@gmail.com"
mailpassword = "Ki***"
mailto = "marcos.esgu**@*****"
mailSubject = "my test-deleteme"
mailBody = "This is the email body"
Set objEmail = CreateObject("CDO.Message")
Set objConf = objEmail.Configuration
Set objFlds = objConf.Fields
With objFlds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mailServer
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTPport
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = cdoTimeout
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasicAuth
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = mailusername
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mailpassword
.Update
End With
objEmail.To = mailto
objEmail.From = mailusername
objEmail.Subject = mailSubject
objEmail.TextBody = mailBody
'objEmail.AddAttachment "C:report.pdf"
objEmail.Send
Set objFlds = Nothing
Set objConf = Nothing
Set objEmail = Nothing
END SUB
answered Jun 2, 2016 at 2:29
MarcosMarcos
691 silver badge1 bronze badge
2
Had the same problem using BizTalk, where adapter default handler specified to use NTLM authentication (by default). Even though I specified to override handler on send port properties, BizTalk did not allow me to override adapter default handler. I needed to change adapter default handler in order to get it to work.
Now it works!
answered Feb 16, 2018 at 9:49
JERKERJERKER
8878 silver badges16 bronze badges
I am trying to send Email
But I am getting this Error.
The message could not be sent to the SMTP server. The transport error code was 0x80040217. The server response was not available
any one having any idea about it please Help me
asked Feb 6, 2012 at 7:52
3
Discovered that you can also get this error when Gmail’s security settings don’t allow messages to be sent from the address you intend to use. I had to enable access for less secure apps for my account in question by:
- Logging into the address you want to use for sending email from Excel.
- Visit the page https://www.google.com/settings/security/lesssecureapps
- Click Enable Less Secure Apps.
- Click Done.
answered Nov 4, 2014 at 3:58
Jacob FinkJacob Fink
1911 silver badge2 bronze badges
1
It’s caused by a wrong username or password for the SMTP server and
usually means that the server has disabled your account for spamming i
you’ve sent 1500 mails
answered Feb 10, 2014 at 18:31
2
Thanks for your replies, it worked! it was because I didn’t have this option enabled:
https://www.google.com/settings/security/lesssecureapps
In case somebody needs it, this is the VBScript code I’m using in Qlikview:
SUB SendMail
Dim objEmail
Const cdoSendUsingPort = 2 ' Send the message using SMTP
Const cdoBasicAuth = 1 ' Clear-text authentication
Const cdoTimeout = 60 ' Timeout for SMTP in seconds
mailServer = "smtp.gmail.com"
SMTPport = 465 '25 'SMTPport = 465
mailusername = "marcos.esgu**@gmail.com"
mailpassword = "Ki***"
mailto = "marcos.esgu**@*****"
mailSubject = "my test-deleteme"
mailBody = "This is the email body"
Set objEmail = CreateObject("CDO.Message")
Set objConf = objEmail.Configuration
Set objFlds = objConf.Fields
With objFlds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mailServer
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTPport
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = cdoTimeout
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasicAuth
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = mailusername
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mailpassword
.Update
End With
objEmail.To = mailto
objEmail.From = mailusername
objEmail.Subject = mailSubject
objEmail.TextBody = mailBody
'objEmail.AddAttachment "C:report.pdf"
objEmail.Send
Set objFlds = Nothing
Set objConf = Nothing
Set objEmail = Nothing
END SUB
answered Jun 2, 2016 at 2:29
MarcosMarcos
691 silver badge1 bronze badge
2
Had the same problem using BizTalk, where adapter default handler specified to use NTLM authentication (by default). Even though I specified to override handler on send port properties, BizTalk did not allow me to override adapter default handler. I needed to change adapter default handler in order to get it to work.
Now it works!
answered Feb 16, 2018 at 9:49
JERKERJERKER
8878 silver badges16 bronze badges
kamiru_wr 3 / 3 / 0 Регистрация: 29.05.2013 Сообщений: 13 |
||||
1 |
||||
VBS 29.05.2013, 13:11. Показов 19497. Ответов 19 Метки нет (Все метки)
Доброго времени суток. Сам код:
При запуске выходит с ошибкой «Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available». Добавлено через 1 час 49 минут Добавлено через 22 минуты
__________________
0 |
Pure Free Digital Ghost 4598 / 1910 / 370 Регистрация: 06.01.2013 Сообщений: 4,564 |
|
29.05.2013, 13:37 |
2 |
Google не дает отправлять исполняемые файлы. Надо запаковать в rar, а потом этот rar в zip, т.к на один уровень архивов Гугл смотрить Добавлено через 12 минут
1 |
3 / 3 / 0 Регистрация: 29.05.2013 Сообщений: 13 |
|
29.05.2013, 13:43 [ТС] |
3 |
FraidZZ, спасибо за совет) Тогда вопрос — остальные почтовые службы нормально пропускают файлы?
0 |
Pure Free Digital Ghost 4598 / 1910 / 370 Регистрация: 06.01.2013 Сообщений: 4,564 |
|
29.05.2013, 13:59 |
4 |
А вот хай их знает. Яндекс вроде нормально всегда работал
0 |
3 / 3 / 0 Регистрация: 29.05.2013 Сообщений: 13 |
|
29.05.2013, 14:25 [ТС] |
5 |
Спасибо большое ^^
0 |
17955 / 7592 / 889 Регистрация: 25.12.2011 Сообщений: 11,323 Записей в блоге: 17 |
|
29.05.2013, 14:47 |
6 |
kamiru_wr, здесь имеет значение не только почтовая служба, которая отправляет, но и которая принимает.
1 |
3 / 3 / 0 Регистрация: 29.05.2013 Сообщений: 13 |
|
29.05.2013, 14:50 [ТС] |
7 |
Dragokas, понял, благодарю)
0 |
3 / 3 / 0 Регистрация: 29.05.2013 Сообщений: 13 |
|
31.05.2013, 09:20 [ТС] |
8 |
Доброго времени суток ещё раз. У меня опять возникла проблема касательно этой темы, потому другую решил не создавать. Собственно, вопрос: проблема на моей стороне? Или разные почтовики по разному интерпретируют код?
0 |
Pure Free Digital Ghost 4598 / 1910 / 370 Регистрация: 06.01.2013 Сообщений: 4,564 |
|
31.05.2013, 13:17 |
9 |
Я с этим не сталкивался, но как вариант: попробуй просмотреть не через веб-интерфейс, а приняв письмо в The Bat/Thunderbird/Outlook/The bee или еще что-нибудь.
0 |
17955 / 7592 / 889 Регистрация: 25.12.2011 Сообщений: 11,323 Записей в блоге: 17 |
|
31.05.2013, 14:01 |
10 |
kamiru_wr, так может попробовать просто .HTMLBody
0 |
3 / 3 / 0 Регистрация: 29.05.2013 Сообщений: 13 |
|
31.05.2013, 22:51 [ТС] |
11 |
Dragokas, через .HTMLBody то же самое показывает, к сожалению. Но всё-равно спасибо. FraidZZ, насчёт Пы.Сы — нет, зарегался на рамблере, тот точно так же всё нормально отображает. Насчёт почтовых программ — попробую, спасибо. Возможно, ошибка в том, что в коде сайта есть стили, которые почтовики некоторые не признают и им чистый ХТМЛ подавай?
0 |
0 / 0 / 0 Регистрация: 11.01.2015 Сообщений: 3 |
|
11.01.2015, 16:58 |
12 |
вопрос к автору темы. Что ты исправил в коде и он заработал?
0 |
3 / 3 / 0 Регистрация: 29.05.2013 Сообщений: 13 |
|
12.01.2015, 00:19 [ТС] |
13 |
y_belinskiy, к сожалению, не могу ответить на вопрос. Давно работал со скриптом. И прошу простить, что не рассказал способ решения проблемы сразу — виноват ^^
1 |
251 / 239 / 16 Регистрация: 31.12.2009 Сообщений: 324 |
|
12.01.2015, 11:29 |
14 |
y_belinskiy, — вы необыкновенно счастливый человек, со времени последнего поста в этом треде kamiru_wr, RESPECT & +1 за верность форуму!!!
1 |
3 / 3 / 0 Регистрация: 29.05.2013 Сообщений: 13 |
|
12.01.2015, 17:08 [ТС] |
15 |
buggydancer, хих, спасибо
1 |
buggydancer 251 / 239 / 16 Регистрация: 31.12.2009 Сообщений: 324 |
||||
12.01.2015, 18:05 |
16 |
|||
kamiru_wr, всегда пожалуйста! y_belinskiy, скрипт из поста #1 заработал в таком варианте:
PS: всех со «Старым Новым Годом!!!»
2 |
0 / 0 / 0 Регистрация: 11.01.2015 Сообщений: 3 |
|
12.01.2015, 21:24 |
17 |
Спасибо большое, очень выручили)))
0 |
251 / 239 / 16 Регистрация: 31.12.2009 Сообщений: 324 |
|
13.01.2015, 11:25 |
18 |
Спасибо большое… и Вам спасибо, «везение — дар божий», глядишь от вашей
0 |
0 / 0 / 0 Регистрация: 03.01.2016 Сообщений: 1 |
|
08.01.2016, 09:58 |
19 |
Спасибо автору) скрипт реально очень помог)
0 |
ur5hpl 1 / 1 / 1 Регистрация: 15.06.2016 Сообщений: 2 |
||||
22.02.2019, 08:09 |
20 |
|||
0 |
08.09.17 — 18:13
Написано так —
ЗагрузитьВнешнююКомпоненту(«V7Plus.dll»);
Попытка
Почта = СоздатьОбъект(«AddIn.V7Mail»);
Почта.Подключиться();
Ругается так:
Ошибка подключения :
Почта.Подключиться();
{Документ.ЗаявкаПокупателя.Форма.Модуль(1460)}: Ошибка при выполнении метода объекта компоненты C:Program Files (x86)1Cv77BINV7Plus.dll
1 — 08.09.17 — 18:16
с запрошенным действием не связана программа электронной почты — и еще вот так!
2 — 08.09.17 — 18:25
CDO.Message используй, а то еще со всякими ssl проблемы вылезут
3 — 08.09.17 — 18:26
а как это написать? в 8 у меня совсем доугие волшебные слова!
4 — 08.09.17 — 18:27
(3) в гугл, там все понятно, я даже в 8 его использую
5 — 08.09.17 — 18:41
6 — 08.09.17 — 19:02
(5) Спасибо!
Только там тоже много всего не хватает
Отстутствует ВК (внешняя компонента) <FormEX>, необходимая для работы программы!
ВК <FormEX> можно скачать здесь: http://www.dorex.ru/?projects&formex&download
Отстутствует обработка <ECDO> для отсылки почты, необходимая для работы программы!
Обработку <ECDO> можно скачать здесь: http://www.infostart.ru/projects/index.php?id=266
Обработку <ECDO> можно скачать здесь: http://1c.proclub.ru/modules/mydownloads/personal.php?cid=81&lid=5747
Устраните возникшие ошибки и попытайтесь вновь!
7 — 08.09.17 — 19:03
написано же где можно скачать!
8 — 08.09.17 — 19:08
(4) А там — так
{Документ.ЗаявкаПокупателя.Форма.Модуль(1453)}: CDO.Message.1: Недопустимое значение конфигурации «SendUsing».
9 — 08.09.17 — 19:09
Это я всё поставлю себе, потом заказчикам…
Мне надо что-то более универсальное.
10 — 08.09.17 — 19:09
а главное не надо ничего скачивать, надо просто СоздатьОбъект(«CDO.Message») и найти как им пользоваться
11 — 08.09.17 — 19:12
(6) formex любой пойдёт
Взять можно на dorex.pro
12 — 08.09.17 — 19:13
13 — 08.09.17 — 19:14
(10) по ссылке что я привёл это и есть cdo в навороченной обертке
14 — 08.09.17 — 19:15
(13) но там еще куча обвязки, которую тс надо найти и зарегистрировать
15 — 08.09.17 — 19:16
(12) Спасибо!
16 — 08.09.17 — 21:14
(14) для клюшечника формекс де-факто стандарт.
17 — 08.09.17 — 21:15
(14) другая обвязка которая там есть — не является обязательной, и без неё работать будет
18 — 13.09.17 — 18:42
iMsg = CreateObject(«CDO.Message»);
iConf =CreateObject(«CDO.Configuration»);
iConf.Fields(«http://schemas.microsoft.com/cdo/configuration/sendusing»).Value = 2;
iConf.Fields(«http://schemas.microsoft.com/cdo/configuration/smtpserver»).Value =»smtp.mail.ru»;
iConf.Fields(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout»).Value = 10;
iConf.Fields.Update();
iMsg.Configuration = iConf;
iMsg.To = «md@mail.ru»;
iMsg.From = «md@mail.ru»;
iMsg.Subject = «????»;
iMsg.TextBody = «????»;
iMsg.TextBodypart.charset=»koi8-r»;
iMsg.Send();
19 — 13.09.17 — 18:43
А вот ругань —
iMsg.Send();
{Документ.ЗаявкаПокупателя.Форма.Модуль(1480)}: : Сервер отклонил один или несколько адресов получателей. Отклик сервера: 550 SMTP is available only with SSL or TLS connection enabled.
Что не так?
20 — 13.09.17 — 18:55
(19) Проблема вот тут указана «.. only with SSL or TLS connection». Хочу, говорит, быть владычицей морской! Упс.. Это из другого проекта. Говорит, что только SSL или TLS соединение могут быть. Читай, как соединиться по SSL.
21 — 13.09.17 — 19:08
{Документ.ЗаявкаПокупателя.Форма.Модуль(1534)}: : Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available — Теперь так
22 — 13.09.17 — 19:11
Глянь свойства конфигурации почты, это где-то в панели управления. Если я не путаю под вечер. Ну и загугли правильные настройки CDO под свой почтовый сервер. И завязывай с мейлру, оно глючное.
23 — 13.09.17 — 19:20
А вот пароль я нигде не задала, вроде?
24 — 13.09.17 — 19:21
Пароль не помог
25 — 14.09.17 — 13:40
loConfig = CreateObject(«CDO.Configuration»);
loCdoMessage = CreateObject(«CDO.Message»);
Этот фокус заработал!
Простой вопрос остался, какое там волшебное слово, чтобы прицепить вложение?
26 — 14.09.17 — 17:50
ау?
27 — 14.09.17 — 18:06
А еще вопрос. В списке отправленных почему-то не появляется! Отправлять, что ли на свой адрес копию?
28 — 14.09.17 — 18:07
(6) клюшки такие клюшки…
каша из топора
29 — 14.09.17 — 18:08
loCdoMessage.AddAttachment (файл+ «.XLS»); — нашла.
Файл при этом приходит, нужного размера, но не открывается!
30 — 14.09.17 — 18:10
Файл = Путь +»»+ НаименованиеФайла;
Если ФС.СуществуетФайл(Файл+».xls»)=1 Тогда
Если Вопрос(«Такой документ уже существует, заменить его ?»,4)=6 Тогда
ИсхТабл.Записать(Файл,»XLS»);
КонецЕсли;
Иначе
ИсхТабл.Записать(Файл,»XLS»);
//ИмяФайла = Файл+».xls»;
//Комментарий = Комментарий + «_Сохранен:» + ИмяФайла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
//>Федоров
Возврат(Файл);
31 — 14.09.17 — 19:10
РПаЎ±б — Вот такая штука внутри пришедшего файла.
32 — 14.09.17 — 19:12
HTMLBody — а вот это зачем?
33 — 14.09.17 — 19:14
(30) ИсхТабл — это ТбаличныйДокумент полагаю? что говорит синтак-помощник насчет параметров метода Записать?
34 — 14.09.17 — 19:15
(32) а интуиция и базовые знания англ языка вам что подсказывают?
35 — 14.09.17 — 19:16
Во дела!
Не хватало строчки — loCdoMessage.textbody = «»;
36 — 14.09.17 — 19:16
Копию просто в адресе через запятую сделала (хотя было бы симпатично указать отдельно)
37 — 14.09.17 — 19:17
(34) Всё записывается! Теперь еще и прислалось правильно.
38 — 14.09.17 — 19:20
(33) снимаю вопрос. это ж 7ка
39 — 14.09.17 — 19:55
(27) с списке отправленных ГДЕ?
40 — 14.09.17 — 19:55
(29) я предлагал ссылку….
41 — 14.09.17 — 19:57
(36) используй поле сс или bcc
42 — 14.09.17 — 19:57
loConfig.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserver»;). Value = «smtp.mail.ru»;
с почты …mail уходило.
Поменяла адрес на почту Ya
Ругается!
loCdoMessage.Send();
{Документ.ЗаявкаПокупателя.Форма.Модуль(1482)}: : Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available
43 — 14.09.17 — 19:58
написать там «smtp.yandex.ru»?
44 — 14.09.17 — 19:58
(28)
— Давид, тебя убили!
— Да ты шо? Насмерть?!
45 — 14.09.17 — 19:59
Клюшки пережили и 8.0 и 8.1 и 8.3 и переживут и 8.3
46 — 14.09.17 — 20:00
loCdoMessage.Send();
{Документ.ЗаявкаПокупателя.Форма.Модуль(1482)}: : Сервер отклонил адрес отправителя. Отклик сервера: 553 5.7.1 Sender address rejected: not owned by auth user.
47 — 14.09.17 — 20:01
(43) открой оутлок и настрой почту там, добейся отправки из оутлука, потом перенести настройки на цдо
Можно ещё на яндекспочте посмотреть настройки для почтовых агентов и вписатьт в цдо
48 — 14.09.17 — 20:07
у меня ваще оутлука нет. Никогда им не пользовалась.
49 — 14.09.17 — 20:11
На яндекс-почте где это можно увидеть?
50 — 14.09.17 — 20:15
(49) в хелпах по настройке почты для почтовых программ
51 — 14.09.17 — 20:16
(48) да по барабану, хот ЗеБат, хоть Тандеберд
52 — 14.09.17 — 20:21
https://yandex.ru/support/ — Дайте уже ссылку! Не могу найти ничего подходящего.
Для майл добрый человек прислал
https://help.mail.ru/mail-help/mailer/popsmtp
53 — 14.09.17 — 20:25
54 — 14.09.17 — 20:25
У автора иммунитет к пользованию поисковиками что ли?
55 — 14.09.17 — 20:27
ага!
56 — 14.09.17 — 20:28
(52) я далеко и инет елееле
57 — 14.09.17 — 21:21
(46) значит работает твоя каша из топора. ЭТо ответ от smtp-сервера. Проблема в том, что смтп требует авторизации и переданные почтовику логин-пароль не соответсвуют тому адресу, который в поле From в письме.
Надо перестать трогать внешние все эти компоненты и сосредоточиться на коде, которым отправка производится — там не те логин-пароль написаны
vadim777
58 — 14.09.17 — 22:12
Работающая процедура для отправки писем с вложениями:
Процедура глОтправить(АдресПолучателя,Вложения=»»,Тема=»»,Текст=»»)
oMessage = CreateObject(«CDO.Message»);
oMessage.To = СокрЛП(АдресПолучателя);
oMessage.From = СокрЛП(АдресОтправителя);
oMessage.Subject = Тема;
oMessage.TextBody = Текст;
Если ТипЗначения(Вложения)=2 Тогда
Если ПустоеЗначение(Вложения)=0 Тогда
oMessage.AddAttachment(Вложения);
КонецЕсли;
ИначеЕсли ТипЗначения(Вложения)=100 Тогда
Для Сч=1 По Вложения.РазмерСписка() Цикл
oMessage.AddAttachment(Вложения.ПолучитьЗначение(Сч));
КонецЦикла;
КонецЕсли;
oMessage.TextBodyPart.Charset = «windows-1251»;
oMessage.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusing»).value = 2;
oMessage.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserver»).value = СокрЛП(СерверОтправкиПочты);
oMessage.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate»).value=1;
oMessage.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername»).value = СокрЛП(Логин);
oMessage.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword»).value = СокрЛП(Пароль);
oMessage.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport»).value = 465;
oMessage.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl»).value = 1;
oMessage.Configuration.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout»).value = 60;
oMessage.Configuration.Fields.Update();
Попытка
oMessage.Send();
Текст = Шаблон(«[СокрЛП(Тема)] на [СокрЛП(АдресПолучателя)] отправлена!»);
Сообщить(Текст);
Исключение
Текст = Шаблон(«Не удалось отправить сообщение [СокрЛП(Тема)] на [СокрЛП(АдресПолучателя)]!»);
Сообщить(Текст);
Сообщить(ОписаниеОшибки(), «!»);
КонецПопытки;
КонецПроцедуры
Для получения, распаковки и удаления писем на сервере почты:
// ===============================
Функция ЗагрузитьDialMail()
Если ЗагрузитьВнешнююКомпоненту(«DialMail.dll»)=0 Тогда
Сообщить(«Не удалось обнаружить компоненту DialMail.dll!»);
Возврат 0;
КонецЕсли;
Возврат 1;
КонецФункции
// ===============================
Функция УстановитьPOP3()
Если ЗагрузитьDialMail() = 0 Тогда
Возврат 0;
КонецЕсли;
Попытка
POP3 = СоздатьОбъект(«AddIn.POP3»);
POP3.ВестиЛогФайл = 1;
POP3.ИмяЛогФайла = ИмяЛогФайла;
// Сообщить(POP3.ВерсияОбъектаСтр);
Исключение
Сообщить(«Не удалось создать объект POP3 из компоненты DialMail.dll!»);
Возврат 0;
КонецПопытки;
Возврат 1;
КонецФункции
// ===============================
Функция УстановитьSMTP()
Если ЗагрузитьDialMail() = 0 Тогда
Возврат 0;
КонецЕсли;
Попытка
SMTP = СоздатьОбъект(«AddIn.SMTP»);
SMTP.ВестиЛогФайл = 1;
SMTP.ИмяЛогФайла = ИмяЛогФайла;
// Сообщить(SMTP.ВерсияОбъектаСтр);
Исключение
Сообщить(«Не удалось создать объект SMTP из компоненты DialMail.dll!»);
Возврат 0;
КонецПопытки;
Возврат 1;
КонецФункции
// ===============================
Функция ПодключитьсяКPop3()
Если УстановитьPOP3() = 0 Тогда
Возврат 0;
КонецЕсли;
POP3.РабочийКаталог=СокрЛП(ВременныйКаталог);
Получили=0;
POP3.ИспользоватьПрокси=0;
POP3.ИспользоватьSSL=1;
POP3.ИспользоватьTSL=1;
POP3.ЛокальныйИнтерфейс = «»;
Если POP3.Подключиться(СерверПриемаПочты,»995″,Логин,Пароль,1,1)=0 Тогда
Предупреждение(«Не смогли подключиться к POP3-серверу»);
Возврат 0;
КонецЕсли;
ВсегоПисемНаСервере=POP3.КоличествоПисем;
ОбщаяДлинаПолучение=Число(POP3.ОбщийРазмерПисем);
Если ВсегоПисемНаСервере=0 Тогда
СообщениеПолучение=»Нет Писем»;
Возврат -1;
КонецЕсли;
Возврат 1;
КонецФункции
// ===============================
Процедура глПолучить()
Если ПодключитьсяКPop3() <> 1 Тогда
Возврат;
КонецЕсли;
тз.УдалитьСтроки();
POP3.ОчиститьРабочийКаталог(); //! Временный каталог
Получили=0;
ИндикПолучение=Индик;
Форма.Обновить(0);
Состояние(«Получаем сообщения для офиса»);
Для нс=1 по POP3.КоличествоПисем Цикл
POP3.ПолучитьЗаголовокПисьма(нс);
Состояние(«»+СокрЛП(POP3.ОтКого)+» «+СокрЛП(POP3.ДатаСоздания)+» «+POP3.КоличествоПрисоединенныхФайлов);
тз.НоваяСтрока();
тз.НС=нс;
тз.EMail=POP3.ОтКого;
тз.Дата=POP3.ДатаСоздания;
Если POP3.ПолучитьПисьмо(нс,0,0) <> 1 Тогда
Текст = Шаблон(«Ошибка получения письма № [нс] от ‘[тз.EMail]'»);
Сообщить(Текст,»!!!»);
Продолжить;
КонецЕсли;
х=POP3.ПолученоВБайтах/ОбщаяДлинаПолучение*СтрДлина(Индик);
ИндикПолучение=Лев(Индик,СтрДлина(Индик)-х);
Если POP3.РаспаковатьПисьмо() <> 1 Тогда
Если ПустоеЗначение(POP3.ТекущееПисьмо) = 1 Тогда
Текст = Шаблон(«Ошибка распаковки письма № [нс] от ‘[тз.EMail]'»);
Иначе
Текст = Шаблон(«Ошибка распаковки письма № [нс] ‘[POP3.ТекущееПисьмо]'»);
КонецЕсли;
Сообщить(Текст, «!!!»);
Продолжить;
КонецЕсли;
Для нф=1 по POP3.КоличествоПрисоединенныхФайлов Цикл
тз.Вложение = СокрЛП(тз.Вложение)+POP3.ПолучитьИмяПрисоединенногоФайла(нф);
КонецЦикла;
Форма.Обновить(0);
КонецЦикла;
Состояние(«Получение сообщений завершено!»);
POP3.Отключиться();
ИндикПолучение=»»;
КонецПроцедуры
// ===============================
Процедура СохранитьДанные()
Если Вопрос(«Сохранить все данные?»,4)<>6 Тогда
Возврат;
КонецЕсли;
ВсегоПисемНаКомпьютере = POP3.КоличествоПисемВРабочемКаталоге;
Если тз.КоличествоСтрок() <> ВсегоПисемНаКомпьютере Тогда
Текст = «Количество писем в рабочем каталоге не равно количеству полученных писем: «;
Текст = Текст + Шаблон(«[ВсегоПисемНаКомпьютере] <> [тз.КоличествоСтрок()]»)+РазделительСтрок;
Текст = Текст + «Произойдет повторное получение писем!»;
Предупреждение(Текст);
глПолучить();
ВсегоПисемНаКомпьютере = POP3.КоличествоПисемВРабочемКаталоге;
КонецЕсли;
Для нс=1 По ВсегоПисемНаКомпьютере Цикл
Если POP3.РаспаковатьПисьмо(ВсегоПисемНаКомпьютере-нс+1) <> 1 Тогда
Текст = Шаблон(«Ошибка распаковки письма № [нс] ‘[POP3.ТекущееПисьмо]'»);
Сообщить(Текст, «!!!»);
Продолжить;
КонецЕсли;
Для нф=1 по POP3.КоличествоПрисоединенныхФайлов Цикл
ИмяФайла = POP3.ПолучитьИмяПрисоединенногоФайла(нф);
POP3.СохранитьПрисоединенныйФайл(нф,КаталогВложений,ИмяФайла);
КодОтправителя= СокрЛП(Лев(ИмяФайла,Найти(ИмяФайла,»_»)-1));
Если ФС.СуществуетФайл(КаталогВложений+КодОтправителя)=0 Тогда
ФС.СоздатьКаталог(КаталогВложений+КодОтправителя);
КонецЕсли;
КатОтправителя = КаталогВложений+КодОтправителя;
ЗапуститьПриложение(КаталогВложений+»RAR32.exe e -y «+КаталогВложений+ИмяФайла+» «+КатОтправителя+»»);
КонецЦикла;
POP3.УдалитьПисьмоИзРабочегоКаталога();
КонецЦикла;
POP3.Отключиться();
Предупреждение(«Сохранение данных завершено!»);
КонецПроцедуры
// ===============================
Процедура УдалитьСообщение()
Если ПодключитьсяКPop3() <> 1 Тогда
Возврат;
КонецЕсли;
Если Вопрос(«Удалить сообщение №»+СокрЛП(тз.нс)+» от «»»+СокрЛП(тз.EMail)+»»» за «+тз.Дата+»?»,4)<>6 Тогда
Возврат;
КонецЕсли;
Если POP3.ПолучитьПисьмо(тз.нс)=1 Тогда
POP3.ПолучитьЗаголовокПисьма(тз.нс);
Если (СокрЛП(POP3.ОтКого)=СокрЛП(тз.EMail))и(Дата(POP3.ДатаСоздания)=тз.Дата) Тогда
Рез = POP3.УдалитьПисьмо(тз.нс);
Если Рез<>1 Тогда
Текст = Шаблон(«Ошибка удаления письма: [POP3.ПоследняяОшибка]»);
Сообщить(Текст,»!!!»);
КонецЕсли;
тз.УдалитьСтроку(тз.нс);
// Перенумеруем строки тз
нс=1;
тз.ВыбратьСтроки();
Пока тз.получитьстроку()=1 Цикл
тз.нс=нс;
нс=нс+1;
КонецЦикла;
КонецЕсли;
КонецЕсли;
POP3.Отключиться();
КонецПроцедуры
Для обеспечения работы на прием используется stunnel 5.36
Опубликовал | Дата 23 сентября, 2014
Сегодня у одних моих клиентов перестала работать отправка почты через mail.ru. Рассылка была настроена самописной внешней обработкой с использованием компоненты CDO.Configuration.
Надо сказать, что Mail.ru и Yandex.ru совсем недавно поменяли настройки своих серверов исходящей почты, из-за чего все это и случилось.
Вроде бы ничего сложного… Все настройки (имена серверов, номера портов и т.п.) есть в помощи этих служб. Но мне пришлось помучиться, чтобы все заработало.
На форумах, не смотря на многочисленные посты, внятных ответов было не много. Для пробы, попробовал настроить почту через Яндекс — получилось с первого раза. А вот при отправке через Mail.ru выходила ошибки:
CDO.Message.1: Транспорту не удалось подключиться к серверу
и
Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available
Честно говоря, даже не понял, в чем была моя ошибка, поскольку код для них в результате оказался идентичен. Приведу пример рабочего кода для обоих этих сервисов.
Яндекс:
Процедура ОтправитьПисьмо()
iConf = CreateObject(«CDO.Configuration»);
iMsg = CreateObject(«CDO.Message»);
iMsg.Configuration = iConf;
iMsg.From = «Программист 1C»»»» «;
iMsg.To = «poluchatel@mail.ru»;
iMsg.Subject = «Тема письма»;
iMsg.textBody = «Тело письма»;
iMsg.BodyPart.Charset = «windows-1251»;
iMsg.AddAttachment(«D:1.txt»);
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusing»). Value = 2;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserver»). Value = «smtp.yandex.ru»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport»). Value = «465»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate»). Value = 1;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername»). Value = «otpravitel@yandex.ru»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword»). Value = «пароль»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl»). Value = 1;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout»).Value = 60;
iConf.Fields.Update();
Попытка
iMsg.Send();
Сообщить(«Письмо отправлено.»);
Исключение
Сообщить(«Письмо не отправлено. Ошибка : «+Ошибка = ОписаниеОшибки(); ,»!»);
КонецПопытки;
КонецПроцедуры
Mail.ru
Процедура ОтправитьПисьмо()
iConf = CreateObject(«CDO.Configuration»);
iMsg = CreateObject(«CDO.Message»);
iMsg.Configuration = iConf;
iMsg.From = «Программист 1C»»»» «;
iMsg.To = «antmagn@mail.ru»;
iMsg.Subject = «Тема письма»;
iMsg.textBody = «Тело письма»;
iMsg.BodyPart.Charset = «windows-1251»;
iMsg.AddAttachment(«D:1.txt»);
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusing»). Value = 2;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserver»). Value = «smtp.mail.ru»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport»). Value = «465»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate»). Value = 1;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername»). Value = «otpravitel@list.ru»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword»). Value = «пароль»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl»). Value = 1;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout»).Value = 60;
iConf.Fields.Update();
Попытка
iMsg.Send();
Сообщить(«Письмо отправлено.»);
Исключение
Сообщить(«Письмо не отправлено. Ошибка: «+ОписаниеОшибки(),»!»);
КонецПопытки;
КонецПроцедуры
- Remove From My Forums
Отправка сообщений
-
Вопрос
-
Добрый день,
Подскажите в чем может быть дело.
есть два сервера, один почтовый второй контроллер домена, с домена пытаюсь отправить отчет о использовании квоты. Тестовую отправку письма делает, а когда по расписанию, то отчет создаетья но не отправляеться. Сервер выдает такое сообщение (e-mail в отчете изменен):
Тип события: Предупреждение
Источник события: SRMREPORTS
Категория события: Отсутствует
Код события: 150
Дата: 30.12.2006
Время: 13:22:27
Пользователь: Н/Д
Компьютер: DC-LCK-001
Описание:
Ошибка отправки отчета по электронной почте. Проверьте настройки сервера SMTP.Контекст:
—Подробные сведения об ошибке:
= Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available— SMTP-сервер = ex-lck-001.email.com
— Кому = email@email.com
— От = email@email.com
— Файл преобразования XSLT = C:WINDOWSsystem32srmXSLTQuotaUsage_HTML.xsl
— Формат вывода = Html
— Адресат = email@email.com
— Имя отчета = Использованиеквоты9Дополнительные сведения можно найти в центре справки и поддержки, в «http://go.microsoft.com/fwlink/events.asp».
Ответы
-
Эта статья — не ваш случай? Очень похоже.
http://support.microsoft.com/kb/914678
WORKAROUND
To work around this problem, disable Basic authentication on the SMTP server.
Note Perform this procedure on a SMTP server only if the following conditions are true:
• The SMTP server has Basic authentication enabled. • Basic authentication is not used by clients that submit e-mail messages. For example, to disable Basic authentication in Microsoft Exchange Server 2003, follow these steps:
1. In Exchange System Manager, expand Servers, expand the inbound Exchange server, expand Protocols, and then expand SMTP. 2. Right-click the inbound SMTP virtual server, and then click Properties. 3. Click the Access tab, and then click Authentication. 4. Click to clear the Basic authentication check box, and then click OK.
Как исправить ошибку DirectShow 0x80040217
Совместима с Windows 2000, XP, Vista, 7, 8 и 10
Признаки ошибки 0x80040217
- Появляется сообщение «Ошибка 0x80040217» и окно активной программы вылетает.
- Ваш компьютер часто прекращает работу после отображения ошибки 0x80040217 при запуске определенной программы.
- Отображается “VFW_E_CANNOT_CONNECT”.
- Windows медленно работает и медленно реагирует на ввод с мыши или клавиатуры.
- Компьютер периодически «зависает» на несколько секунд.
Такие сообщения об ошибках 0x80040217 могут появляться в процессе установки программы, когда запущена программа, связанная с Microsoft Corporation (например, DirectShow), при запуске или завершении работы Windows, или даже при установке операционной системы Windows. Отслеживание момента появления ошибки 0x80040217 является важной информацией при устранении проблемы.
Причины ошибки 0x80040217
- Поврежденная загрузка или неполная установка программного обеспечения DirectShow.
- Повреждение реестра DirectShow из-за недавнего изменения программного обеспечения (установка или удаление), связанного с DirectShow.
- Вирус или вредоносное ПО, которые повредили файл Windows или связанные с DirectShow программные файлы.
- Другая программа злонамеренно или по ошибке удалила файлы, связанные с DirectShow.
Ошибки типа Ошибки во время выполнения, такие как «Ошибка 0x80040217», могут быть вызваны целым рядом факторов, поэтому важно устранить каждую из возможных причин, чтобы предотвратить повторение ошибки в будущем.
Ошибки во время выполнения в базе знаний
star rating here
Как исправить ошибку DirectShow 0x80040217
Ниже описана последовательность действий по устранению ошибок, призванная решить проблемы Ошибка 0x80040217. Данная последовательность приведена в порядке от простого к сложному и от менее затратного по времени к более затратному, поэтому мы настоятельно рекомендуем следовать данной инструкции по порядку, чтобы избежать ненужных затрат времени и усилий.
Пожалуйста, учтите: Нажмите на изображение [ ] , чтобы развернуть инструкции по устранению проблем по каждому из шагов ниже. Вы также можете использовать изображение [ ], чтобы скрывать инструкции по мере их выполнения.
Шаг 1: Восстановить записи реестра, связанные с ошибкой 0x80040217
Редактирование реестра Windows вручную с целью удаления содержащих ошибки ключей Ошибка 0x80040217 не рекомендуется, если вы не являетесь специалистом по обслуживанию ПК. Ошибки, допущенные при редактировании реестра, могут привести к неработоспособности вашего ПК и нанести непоправимый ущерб вашей операционной системе. На самом деле, даже одна запятая, поставленная не в том месте, может воспрепятствовать загрузке компьютера!
В связи с подобным риском мы настоятельно рекомендуем использовать надежные инструменты очистки реестра, такие как WinThruster [Загрузить] (разработанный Microsoft Gold Certified Partner), чтобы просканировать и исправить любые проблемы, связанные с Ошибка 0x80040217. Используя очистку реестра [Загрузить], вы сможете автоматизировать процесс поиска поврежденных записей реестра, ссылок на отсутствующие файлы (например, вызывающих ошибку %%error_name%%) и нерабочих ссылок внутри реестра. Перед каждым сканированием автоматически создается резервная копия, позволяющая отменить любые изменения одним кликом и защищающая вас от возможного повреждения компьютера. Самое приятное, что устранение ошибок реестра [Загрузить] может резко повысить скорость и производительность системы.
Предупреждение: Если вы не являетесь опытным пользователем ПК, мы НЕ рекомендуем редактирование реестра Windows вручную. Некорректное использование Редактора реестра может привести к серьезным проблемам и потребовать переустановки Windows. Мы не гарантируем, что неполадки, являющиеся результатом неправильного использования Редактора реестра, могут быть устранены. Вы пользуетесь Редактором реестра на свой страх и риск.
Перед тем, как вручную восстанавливать реестр Windows, необходимо создать резервную копию, экспортировав часть реестра, связанную с Ошибка 0x80040217 (например, DirectShow):
- Нажмите на кнопку Начать.
- Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
- Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
- Будет выведено диалоговое окно для доступа.
- Нажмите Да.
- Черный ящик открывается мигающим курсором.
- Введите «regedit» и нажмите ENTER.
- В Редакторе реестра выберите ключ, связанный с Ошибка 0x80040217 (например, DirectShow), для которого требуется создать резервную копию.
- В меню Файл выберите Экспорт.
- В списке Сохранить в выберите папку, в которую вы хотите сохранить резервную копию ключа DirectShow.
- В поле Имя файла введите название файла резервной копии, например «DirectShow резервная копия».
- Убедитесь, что в поле Диапазон экспорта выбрано значение Выбранная ветвь.
- Нажмите Сохранить.
- Файл будет сохранен с расширением .reg.
- Теперь у вас есть резервная копия записи реестра, связанной с DirectShow.
Следующие шаги при ручном редактировании реестра не будут описаны в данной статье, так как с большой вероятностью могут привести к повреждению вашей системы. Если вы хотите получить больше информации о редактировании реестра вручную, пожалуйста, ознакомьтесь со ссылками ниже.
Мы не несем никакой ответственности за результаты действий, совершенных по инструкции, приведенной ниже — вы выполняете эти задачи на свой страх и риск.
Код ошибки транспорта 0x80040217
← →
MTK ( 2012-07-11 12:57 ) [1]
Отправляю почту с помощью такой процедуры:
procedure TfrmMain.SendSMTPMessage(Const ASMTPServer: WideString; SMTPServerPort: Integer;
Const AFrom, ATo, ASubject, ATextBody: WideString;
FileList: TStrings;
AUserName, APassword: String;
ASSL: Boolean;
Const ACharSet: WideString = «utf-8»);
Var
I: Integer;
pMessage,
pAttachment,
pConfiguration,
pFields,
pField: OleVariant;
Begin
pMessage:=CreateComObject(CLASS_Message) as IDispatch;
pMessage.BodyPart.Charset:=ACharSet;
pMessage.To:=ATo;
pMessage.From:=AFrom;
pMessage.Subject:=ASubject;
pMessage.TextBody:=ATextBody;
pMessage.AutoGenerateTextBody:=True;
pMessage.MimeFormatted:=True;
for I:=0 to FileList.Count — 1 do
begin
pAttachment:=pMessage.AddAttachment(FileList[I], «», «»);
mLog.Lines.Add(» файл к отправке: » + FileList[I]);
end;
pConfiguration:=CreateComObject(CLASS_Configuration) as IDispatch;
pFields:=pConfiguration.Fields;
pField:=pFields.Item(WideString(cdoSendUsingMethod));
pField.Value:=Integer(cdoSendUsingPort);
pField:=pFields.Item(cdoSMTPServer);
pField.Value:=ASMTPServer;
pField:=pFields.Item(WideString(cdoSMTPServerPort));
pField.Value:=SMTPServerPort;
pField:=pFields.Item(WideString(cdoSMTPAuthenticate));
if APassword = «» then
pField.Value:=cdoAnonymous
else
pField.Value:=cdoBasic;
pField:=pFields.Item(WideString(cdoSendUserName));
pField.Value:=AUserName;
pField:=pFields.Item(WideString(cdoSendPassword));
pField.Value:=APassword;
if APassword <> «» then
begin
pField:=pFields.Item(WideString(cdoSMTPUseSSL));
pField.Value:=ASSL;
if ASSL then
mLog.Lines.Add(» подключение через безопасное соединение (SSL)»);
end;
Задаю такие параметры:
ASMTPServer = smtp.mail.ru
SMTPServerPort = 25
AFrom = email
ATo = email
ASubject = subject
ATextBody = textbody
FileList = список файлов
AUserName = логин (почтовый ящик)
АPassword = пароль от ящика
ASSL = FALSE
Пробую с двумя почтовыми ящиками на маил.ру.
Если параметр авторизации = cdoAnonymous, то первый ящик отправляет письмо.
А второй выдает ошибку:
«Код ошибки транспорта: 0x800ccc65. Отклик сервера: 503 Administrative prohibition — authorization required. Users in your domain are not allowed to send email without authorization. See http://help.mail.ru/mail-help/mailer/popsmtp for details»
Если параметр авторизации = cdoBasic и заполняю АPassword, то первый и второй ящик выдает ошибку.
«Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available»
Подскажите, пожалуйста, где может быть ошибка.
← →
MTK ( 2012-07-11 13:51 ) [2]
хм. список cdo констант на форум не добавляются
← →
MTK ( 2012-07-11 13:53 ) [3]
Const
CLASS_Message: TGUID = ««;
CLASS_Configuration: TGUID = ««;
cdoSendUsingMethod = «schemas.microsoft.com/cdo/configuration/sendusing»;
cdoSMTPServer = «schemas.microsoft.com/cdo/configuration/smtpserver»;
cdoSMTPServerPort = «schemas.microsoft.com/cdo/configuration/smtpserverport»;
cdoSMTPAuthenticate = «schemas.microsoft.com/cdo/configuration/smtpauthenticate»;
cdoSendUsingPort = $00000002;
cdoAnonymous = $00000000;
cdoBasic = $00000001;
cdoSendUserName =»schemas.microsoft.com/cdo/configuration/cdoSendUserName»;
cdoSendPassword=»schemas.microsoft.com/cdo/configuration/cdoSendPassword»;
cdoSMTPUseSSL=»schemas.microsoft.com/cdo/configuration/smtpusessl»;
← →
Dennis I. Komarov © ( 2012-07-12 22:06 ) [4]
И что? Сорсы компонента закрыты? Ну тогда ССЗБ. Курить RFC по SMTP в последних редакциях (версиях).
P.S. SMTP не сложный протокол. TTcpClient 🙂
← →
Anatoly Podgoretsky © ( 2012-07-13 07:38 ) [5]
> Dennis I. Komarov (12.07.2012 22:06:04) [4]
Зато расширения сложные, относительно
← →
MTK ( 2012-07-13 14:08 ) [6]
Скачал Synapse. За пару минут переделал. Теперь всё работает ))
1C 7.7 Отправка почты с помощью CDO
Сегодня у одних моих клиентов перестала работать отправка почты через mail.ru. Рассылка была настроена самописной внешней обработкой с использованием компоненты CDO.Configuration.
Надо сказать, что Mail.ru и Yandex.ru совсем недавно поменяли настройки своих серверов исходящей почты, из-за чего все это и случилось.
Вроде бы ничего сложного. Все настройки (имена серверов, номера портов и т.п.) есть в помощи этих служб. Но мне пришлось помучиться, чтобы все заработало.
На форумах, не смотря на многочисленные посты, внятных ответов было не много. Для пробы, попробовал настроить почту через Яндекс — получилось с первого раза. А вот при отправке через Mail.ru выходила ошибки:
CDO.Message.1: Транспорту не удалось подключиться к серверу
Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available
Честно говоря, даже не понял, в чем была моя ошибка, поскольку код для них в результате оказался идентичен. Приведу пример рабочего кода для обоих этих сервисов.
Яндекс:
iMsg.From = «Программист 1C»»»» «;
iMsg.Subject = «Тема письма»;
iMsg.textBody = «Тело письма»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusing»). Value = 2;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserver»). Value = «smtp.yandex.ru»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport»). Value = «465»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate»). Value = 1;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername»). Value = «otpravitel@yandex.ru»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword»). Value = «пароль»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl»). Value = 1;
Сообщить(«Письмо не отправлено. Ошибка : «+Ошибка = ОписаниеОшибки(); ,»!»);
Mail.ru
iMsg.From = «Программист 1C»»»» «;
iMsg.Subject = «Тема письма»;
iMsg.textBody = «Тело письма»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusing»). Value = 2;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserver»). Value = «smtp.mail.ru»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverport»). Value = «465»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate»). Value = 1;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendusername»). Value = «otpravitel@list.ru»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/sendpassword»). Value = «пароль»;
iConf.Fields.Item(«http://schemas.microsoft.com/cdo/configuration/smtpusessl»). Value = 1;
Сообщить(«Письмо не отправлено. Ошибка: «+ОписаниеОшибки(),»!»);
Код ошибки транспорта 0x80040217
Summary: Transport Error Code was 0X80040217 errors might be caused by many reasons, especially bad registries or Trojan infection. And it’s easy to find that your Opening programs will be slower and response times lag as well. Most Importantly, If you run several program at the same time, your PC will encounter sudden crash and unexpected freezes. The main source of these performance decreases are startup clutter, registry errors, RAM decline, fragmented files, unnecessary or redundant program installations, etc.
Resolution: If you fix Transport Error Code was 0X80040217 error in time, your PC will run like brand new. In order to fix your errors and speed up PC, it is recommended that your download the ‘Transport Error Code was 0X80040217 Repair Tool‘. It’s an amazing software which is designed for users to troubleshoot Transport Error Code was 0X80040217 errors efficiently..
Try Transport Error Code was 0X80040217 Removal Program Now
In order to repair Transport Error Code was 0X80040217 issue, use the SmartPCFixer software program. This system optimizer software is already proven to locate, identify, and troubleshoot Transport Error Code was 0X80040217 errors. Your computer should run faster and smoother after using this software.
What Else Does SmartPCFixer Offer You?
Apart from fixing Transport Error Code was 0X80040217 problems, SmartPCFixer is designed to provide the user’s computer system with better optimization, which helps you manage startup items, desktop, browser objects, Internet, system service, Windows optimization, file extensions and so on. With these sophisticated utilities your system is tuned up to run at the optimal state.
SmartPCFixer is designed to scan, diagnose and repair your operating system. Using it results in better optimization, manages startup and desktop, assists you with maintaining browser objects, internet options, system service, and repairs file extensions. With this arsenal of powerful, sophisticated utilities your system is tuned to run at its optimal state. Included are Easy Repair Wizard, Error Utilities, File Association fixer, Register ActiveX, Shortcuts Fixer, Winsock2 Repair toolkit, Dll Fixer and more.
Conclusions:
We should never ignore Transport Error Code was 0X80040217 problem when we encounter it at the first time. If Transport Error Code was 0X80040217 error cannot be troubleshooted in a effective way, you may received more severe computer problems. Therefore, for the sake of computer security and personal information, you need to get rid of Transport Error Code was 0X80040217 error as soon as possible with the guide in this post. SmartPCFixer can be your best choice to remove Transport Error Code was 0X80040217 error in time.
Код ошибки 0х80073712 как исправить
Сегодня разберем классическую проблему появления кода ошибки в Windows. Код ошибки 0х80073712 появляется в Windows 10 и связан с Центром обновлений, что же это за ошибка, которая появляется у многих пользователей?
Определение ошибки 0х80073712
Подобный код означает проблему в системе. Редкий случай, когда ошибка исчезает сама, поэтому необходимо вмешательство пользователя. Ошибка 0х80073712 выскакивает при невозможности выполнить автоматическое обновление системы. Особенно это сказывается при закачке глобальных обновлений.
Возможно ошибка появляется из-за повреждения системных файлов, отвечающих за скачивание обновлений из центра обновлений, возможно, есть и другие причины. В любом случае постараемся от ошибки избавиться.
Список полезных ссылок по теме:
Как исправить ошибку 0х80073712
Разберем пару моментов, которые помогут нам разобраться с проблемой центра обновлений. В интернете на официальном сайте Microsoft можно скачать утилиту для исправления проблем с центром обновлений. Полезная штука, не так ли? Потом попробуем почистить уже установленные обновления с помощью очистки диска.
Находим по запросу «update troubleshooter» сайт Microsoft и скачиваем оттуда утилиту.
Скачанную утилиту запускаем и выбираем пункт, который необходимо починить. В нашем случае «Центр обновления Windows». Потом жмём кнопку «Далее».
Программа начнёт искать неполадки центра обновлений и в случае чего автоматически их устранит.
Возможно появится окно, где нужно предоставить права администратора для устранения причин. Тогда нажмите соответствующую кнопку. После чего снова выбираем пункт центр обновления и щелкаем по кнопке «Далее».
Закрываем окно, когда процесс исправления завершиться успешно.
Еще необходимо заново запустить Update Troubleshooter продиагностировать уже сети Windows. Делаем те же процедуры, что и выше.
Программа должна запросить перезагрузку системы, это обязательное условие. Если ничего не появилось, перезагружаем компьютер самостоятельно.
После перезагрузки зайдите в центр обновления и попытайтесь заново загрузить обновы. Надеюсь, у вас всё получилось. Если нет, идём дальше.
Утилита очистка диска для исправления ошибки 0х80073712
Заходим в каталог «Компьютер» и нажимаем по системному диску правой кнопкой мышки. Выбираем пункт «Свойства».
В свойствах перейдите во вкладку «Общие» и нажмите кнопку «Очистка диска». Подождите пока система оценит дисковое пространство и наличие файлов, драйверов и программ на разделе.
В следующем окошке уже щелкаем по кнопке «Очистить системные файлы» и также ждём процесс оценки раздела.
В этом окне отмечаем галочками «Временные файлы», можно отметить пункты «Файлы журнала обновлений Windows», «Пакеты драйверов устройств», «Временные файлы установки Windows».
Восстановление образа
Вы можете воспользоваться командами восстановления образа, тогда возможно, ошибка 0х80073712 исчезнет.
Запускаем командую строку с повышенными привилегиями и пишем следующую команду:
DISM.exe /Online /Cleanup-image /Scanhealth
Так мы проверим повреждён ли образ. Ждём окончания процесса. В случае отрицательного результата вводим команду для восстановления:
DISM.exe /Online /Cleanup-image /Restorehealth
Теперь вы можете попробовать запустить центр обновлений и скачать что-то.
Если вышеизложенные методы вам не помогли, то есть возможность вернуть Windows в исходное состояние, например, с помощью токи восстановления или диска восстановления.
Я пытаюсь отправить письмо
Но я получаю эту ошибку.
Сообщение не может быть отправлено на SMTP-сервер. Код ошибки транспорта: 0x80040217. Ответ сервера недоступен
любой, кто имеет какое-либо представление об этом, пожалуйста, помогите мне
4 ответы
Обнаружено, что вы также можете получить эту ошибку, когда настройки безопасности Gmail не разрешают отправлять сообщения с адреса, который вы собираетесь использовать. Мне пришлось включить доступ для менее безопасных приложений для моей учетной записи, о которой идет речь, следующим образом:
- Войдите в адрес, который вы хотите использовать для отправки электронной почты из Excel.
- Посетите страницу https://www.google.com/settings/security/lesssecureapps
- Нажмите «Включить менее безопасные приложения».
- Нажмите Готово.
Создан 04 ноя.
Это вызвано неправильным именем пользователя или паролем для SMTP-сервера и обычно означает, что сервер отключил вашу учетную запись для рассылки спама, если вы отправили 1500 писем.
Создан 10 фев.
Спасибо за ваши ответы, это сработало! это было потому, что у меня не была включена эта опция:
https://www.google.com/settings/security/lesssecureapps
Если кому-то это нужно, это код VBScript, который я использую в Qlikview:
SUB SendMail
Dim objEmail
Const cdoSendUsingPort = 2 ' Send the message using SMTP
Const cdoBasicAuth = 1 ' Clear-text authentication
Const cdoTimeout = 60 ' Timeout for SMTP in seconds
mailServer = "smtp.gmail.com"
SMTPport = 465 '25 'SMTPport = 465
mailusername = "marcos.esgu**@gmail.com"
mailpassword = "Ki***"
mailto = "marcos.esgu**@*****"
mailSubject = "my test-deleteme"
mailBody = "This is the email body"
Set objEmail = CreateObject("CDO.Message")
Set objConf = objEmail.Configuration
Set objFlds = objConf.Fields
With objFlds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mailServer
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTPport
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = cdoTimeout
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasicAuth
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = mailusername
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mailpassword
.Update
End With
objEmail.To = mailto
objEmail.From = mailusername
objEmail.Subject = mailSubject
objEmail.TextBody = mailBody
'objEmail.AddAttachment "C:report.pdf"
objEmail.Send
Set objFlds = Nothing
Set objConf = Nothing
Set objEmail = Nothing
END SUB
ответ дан 03 авг.
Была такая же проблема с использованием BizTalk, где обработчик адаптера по умолчанию указал использование проверки подлинности NTLM (по умолчанию). Несмотря на то, что я указал переопределить обработчик в свойствах порта отправки, BizTalk не позволил мне переопределить обработчик адаптера по умолчанию. Мне нужно было изменить обработчик адаптера по умолчанию, чтобы заставить его работать.
Теперь это работает!
Создан 16 фев.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
asp.net
smtp
or задайте свой вопрос.