1C 7.7 Отправка почты с помощью CDO

Рубрика: 1С 7.7

Сегодня у одних моих клиентов перестала работать отправка почты через mail.ru. Рассылка была настроена самописной внешней обработкой с использованием компоненты CDO.Configuration.

Надо сказать, что Mail.ru и Yandex.ru совсем недавно поменяли настройки своих серверов исходящей почты, из-за чего все это и случилось.

Вроде бы ничего сложного... Все настройки (имена серверов, номера портов и т.п.) есть в помощи этих служб. Но мне пришлось помучиться, чтобы все заработало.

На форумах, не смотря на многочисленные посты, внятных ответов было не много.  Для пробы, попробовал настроить почту через Яндекс— получилось с первого раза. А вот при отправке через Mail.ru выходила ошибки:

CDO.Message.1: Транспорту не удалось подключиться к серверу

и

Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 080040217. Отклик сервера: 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 ();

Сообщить(Письмо отправлено.);

Исключение

Сообщить(Письмо не отправлено. Ошибка: „+ОписаниеОшибки(),“!);

КонецПопытки;

КонецПроцедуры

5 комментариев к “1C 7.7 Отправка почты с помощью CDO”

  • 28 октября, 2014, 20:07

    Не сталкивалась с подобными проблемами. Но у меня есть знакомый, у него была статья на эту тему seo-it-in.ru/optimizatsiya-sajta/kak-podklyuchit-pochtu-dlya-svoego-domena-na-yandeks

    Один раз этот человек помог мне разобраться с серьезным вопросом. Может, будет полезен и Вам? 

  • 29 октября, 2014, 18:09

    Спасибо, Надежда. Буду иметь ввиду.

  • 19 июля, 2015, 17:23

    Как раз искал возможность проверить различные способы отправки письма с сервера, так как встроенный почтовый клиент не хочет работать.

  • Дмитрий
    29 апреля, 2016, 10:14

    Работает, но если используется прокси-сервер не отправляет. Добавление 

    iConf.Fields.Item («http://schemas.microsoft.com/cdo/configuration/urlproxyserver»).Value = «proxy:3128»;

    iConf.Fields.Item («http://schemas.microsoft.com/cdo/configuration/urlproxybypass»).Value =  "";

    также не помогло «Транспорту не удалось подключиться к серверу»

  • 28 мая, 2016, 1:54

    Дмитрий, спасибо за добавление! Сам я через прокси не тестировал.

Оставить комментарий или два

Оповещать о новых комментариях по RSS