1с интернетпочта подключиться ошибка

Добрый день! Из 1С:Предприятие 8.2.17.169 перестала отправляться почта.

Использую стандартный код.

    Профиль = Новый ИнтернетПочтовыйПрофиль;

  
   Профиль.АдресСервераPOP3 = POP3Сервер;

   Профиль.АдресСервераSMTP = SMTPСервер;

   Если ВремяОжиданияСервера > 0 Тогда

       Профиль.ВремяОжидания = ВремяОжиданияСервера;

   КонецЕсли;

   Профиль.Пароль           = Пароль;

   Профиль.Пользователь     = Логин;

   Профиль.ПортPOP3         = ПортPOP3;

   Профиль.ПортSMTP         = ПортSMTP;

  
   Если ТребуетсяSMTPАутентификация Тогда

       Профиль.ПарольSMTP       = ПарольSMTP;

       Профиль.ПользовательSMTP = ЛогинSMTP;

   Иначе

       Профиль.ПарольSMTP       = Пароль;

       Профиль.ПользовательSMTP = Логин;

   КонецЕсли;

  
   ИнтернетПочта = Новый ИнтернетПочта;

  
   Попытка

       ИнтернетПочта.Подключиться(Профиль);

   Исключение

       СообщитьОбОшибке(ОписаниеОшибки());

       Проверка = ПроверитьЗаполнениеОбязательныхПолей();

       Если НЕ ЗначениеНеЗаполнено(Проверка) Тогда

           СообщитьОбОшибке(«» + Проверка);

       КонецЕсли;

       Предупреждение(«Произошли ошибки при проверке настроек учетной записи.

                      |Описание ошибки приведено в окне сообщения.»);

       Возврат;

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

  
   Предупреждение(«Проверка подключения к почтовому серверу с заданными параметрами выполнена успешно.»);

1С стала выдавать ошибку:

Ошибка при вызове метода контекста (Подключиться): Время ожидания операции чтения истекло.

Раньше все отправлялось отлично. Есть подозрение, что могло накатиться какое-то обновление на почтовый сервер, и 1С перестала удовлетворять новым политикам.

Пробовал менять способ SMTP-аутентификацией, типа:

    

Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;

В этом случае 1С выдает ошибку:  

Ошибка при вызове метода контекста (Подключиться): Параметр команды не реализован (SMTP error code 504, 5.7.4 Unrecognized authentication type)

В чем может быть дело?

В 1С есть возможность работать с электронной почтой напрямую из приложения: отправлять и принять письма через корпоративную почту.

Применений этому механизму можно найти достаточно много, например:

  • Отправка документов (договоров, счетов, актов и пр.) непосредственно из 1С на email клиента
  • Рассылка отчетов из 1С по расписанию на почту руководителям подразделений
  • Обмен данными 1С с разными системами
  • Отправка заказов поставщику из 1С при дефиците определенных товаров
  • и т.д.

Поскольку работа с почтой из 1С используется в важных бизнес-процессах компании, то необходимо обеспечить стабильную работу этого механизма: письма должны отправляться и приниматься стабильно и без ошибок.

На практике часто возникают ситуации, когда в какой-то момент (обычно в самый неподходящий :)) отправка писем из 1С или прием писем в 1С перестает работать.

В результате последствия могут самыми разными:

  • Клиент не получит вовремя счет на оплату — компания не получит деньги вовремя

imageРуководитель не получит ежедневный отчет о продажах из 1С — не сможет принять правильные решения (в отдельных случаях может уволить ответственного за рассылку:))
imageОбмен данными в 1С не выполнится вовремя, в результате чего объем данных, который нужно будет выгрузить при следующем обмене будет увеличиваться, что может привести к проблемам производительности и блокировкам при следующем обмене
imageВ этой статье мы поговорим о том, на что нужно обратить внимание в первую очередь, если отправка/получение email из/в 1С перестал(а) работать. При этом в статье приведены лишь некоторые из возможных ошибок, причина которых неочевидна. В дальнейшем статья будет дополняться другими ошибками, чтобы вы смогли использовать её как инструкцию по решению проблем с отправкой (получением) почты из (в) 1С.

Будем рассматривать типовой механизм отправки электронной почты из 1С: т.е. со стороны 1С идет подключение к pop3 или smtp-серверу одного из почтовых сервисов: yandex, google, mail.ru и пр.

Ошибка № 1. Аутентификация не прошла (SMTP error code 535 5.7.8 Username and Password not accepted)

Скриншот ошибки, которую вы можете встретить в 1С:
imageВозможные причины:

  • Неверно указан логин/пароль

Часто бывает так что на стороне аккаунта в yandex/google изменили пароль, а в 1С применить изменения забылиЧто делать:
проверить учетные данные (логин/пароль), под которыми выполняется подключение из 1С к smtp-серверу и обновить их.
В настройках безопасности аккаунта закрыт доступ для «ненадежных» приложений
Если вы используете для работы с почтой аккаунт в почтовом сервисе google, то на уровне настроек аккаунта может быть закрыт доступ к аккаунту для «ненадежных» по мнению google приложений. К таким приложениям, к сожалению, google может отнести 1С 🙂
Что делать:
Заходим в настройки безопасности аккаунта google: https://myaccount.google.com/security Открываем доступ к аккаунту для ненадежных приложений:
image

Ошибка № 2. Сервис отключен с разрывом канала (SMTP error code 421 SMTP connection broken (reply))

Скриншот ошибки, которую вы можете встретить в 1С:
imageВозможная причина:IP-адрес сервера, с которого идет отправка сообщений (как правило — сервер 1С) попал в спам-базу.

Это означает, что почтовый сервис расценил письма, которые вы отправляете из 1С, как СПАМ, и они не будут доставлены получателю. Такая ситуация может возникнуть, если вы выполняете массовые email-рассылки из 1С большому количеству клиентов.

Что делать:
Шаг 1. Проверить наличие IP-адреса вашего сервера в СПАМ базах.
Один из удобных способов — воспользоваться сайтом 2ip: https://2ip.ru/spam/. Необходимо ввести IP-адрес и нажать на кнопку «Проверить». На выходе получите примерно такую таблицу:
imageЕсли во второй колонке увидели «LISTED», значит IP-адрес находится в СПАМ-базе.

Шаг 2. Вывести IP из спам базы
В зависимости от того в какой из спам листов попал ваш IP действия будут немного отличаться, но принцип один и тот же — нужно найти сайт этого спам-листа и отправить апелляцию. Рассмотрим, например, как вывести IP из спам листа BARRACUDA.

Заходим на сайт BARRACUDA, форма для отправки апелляции находится тут:

http://www.barracudacentral.org/rbl/removal-request
imageУказываем в этой форме:

  • Email Server IP Address — IP-адрес, который угодил в спам лист
  • Email Address — личная почта. На эту почту придет ответ от Barracuda
  • Phone Number — номер телефона для связи (звонить вряд ли будут, но указать нужно)
  • Reason for Removal — тут надо написать (на английском) почему указанный IP-адрес должен быть удален из спам листа. Можно воспользоваться переводчиком и сформировать, например, такое оправдание: «Сотрудник не правильно пользовался сервером. Он наказан. Ситуацию исправили. Удалите, пожалуйста IP из спам листа»

После этого нажимаем «Submit request» и ждем ответа. На указанный в форме email должно прийти уведомление, которое начинается примерно с таких слов:
imageЧерез несколько часов IP-адрес будет удален из спам-листа. Чтобы проверить это снова заходим на 2ip и проверяем (см. Шаг 1).
Шаг 3. Проверить отправку почты из 1С
Если сделали все правильно — отправка должна выполняться без ошибок.

Таким образом, в этой статье, мы рассмотрели некоторые ошибки, связанные с отправкой (получением) email из/в 1С, возможные причины и как устранить эти ошибки.

Если вам помогла эта статья, напишите об этом в комментариях. Также если вам не удалось решить ошибки, связанные с отправкой почты из 1С, опишите в комментариях проблему и текст ошибки. В этом случае мы постараемся вам помочь. К тому же это будет полезно другим и мы сможем дополнить текущую статью.

Перейти к содержимому

Настройка 1С

Решения по использованию программ 1С. Техподдержка. Сопровождение. Услуги программистов.

При отправке почтового сообщения из 1С появляется ошибка: «Аутентификация не прошла (SMTP error code 535 5.7.0 NEOBHODIM parol prilozheniya <ссылка> Application password is REQUIRED)».

В частном случае клиент использует почтовый аккаунт на Mail Ru. Программа 1С сообщает, что ей необходим пароль приложения.

Ошибка «Аутентификация не прошла»

Что требуется

В целях безопасности необходимо использовать функцию «пароли внешних приложений». Отдельный пароль из 16-ти символов, а не основной — от учетной записи.

  1. Действия в почтовом профиле

Cоздайте пароль приложения.

Чтобы создать пароль для внешнего приложения:
• Перейдите в настройки Mail ID → «Безопасность» → «Пароли для внешних приложений».
• Нажмите кнопку «Добавить».
• Введите название приложения, чтобы не забыть, для какой программы пароль.
• Скопируйте код.

Как итог: получаем отдельный пароль для нашего приложения (1С).

  1. Действия в 1С

Откройте программу, войдите в раздел «Администрирование — Органайзер — Настройка системной учетной записи / Учетные записи электронной почты».

В окне «Настройка почты» проверьте ваш почтовый адрес и введите ранее полученный пароль приложения из п. 1.

✅ Запустите проверку новых настроек — 1С должна авторизоваться в почтовом сервисе по SMTP. Это значит, вы все настроили правильно, а 1С теперь может отправлять письма.

__________
Если не получается или требуется дополнительная поддержка, наши программисты 1С готовы помочь → +7-911-500-10-11

автор

Время прочтения ~ 2 минуты

Если при отправке документа контрагенту по почте из программы 1С у вас появляется сообщение с ошибкой «SMTP error code 535», это означает, что попытка аутентификации на сервере вашего почтового клиента завершилась неудачно.

Для получения более точного описания проблемы стоит зайти в настройки учетной записи, с которой вы пытаетесь отправить письмо.

Отправка почты из 1С

В карточке учетной записи нужно проверить правильность введенных данных, а именно логина и пароля от вашей почты. После повторного ввода данных необходимо нажать на «Проверка настройки» и убедиться, что ошибка не повторяется.

Ошибка отправки почты из 1С

Оставьте заявку

Если ошибка осталась и при этом используется почтовый сервер @mail.ru, значит вы вводите не тот пароль от почты.

С недавних пор Mail для авторизации сторонних приложений у себя на сервере генерирует отдельные пароли, которые и необходимо указывать в настройках 1С.

Для получения пароля, вам необходимо зайти на свою почту и выбрать пункт «Настройки».

Проверка настроек Меил.ру

Далее выбираете «Все настройки».

Проверка настроек Меил.ру

После «Безопасность».

Проверка настроек Меил.ру

В разделе «Безопасность» выбираете «Пароли для внешних приложений».

Проверка настроек Мейл.ру

Добавляете новую запись.

Проверка настроек Мейл.ру

Даете название новой записи, например, «1С».

Проверка настроек Мейл.ру

Вводите свой пароль от почты.

Настройка почты Мейл.ру

Полученный пароль сохраняете и возвращаетесь к настройкам учетной записи в 1С.

Настройка почты Мейл.ру

После ввода нового пароля, повторяете проверку настроек и получаете сообщение о том, что все настройки выполнены правильно.

Настройка почты 1С

Консультация 1С

У разработчиков на платформе 1С иногда возникает задача по взаимодействию системы 1С: Предприятие с различными почтовыми программами и протоколами. 1С Предприятие 8.0 имеет довольно удобные средства для отправки сообщений, импорта писем из почтового клиента в справочник или другой объект конфигурации, работы с MAPI, SMTP или POP3.

При работе с почтой разделяют два способа доступа к почтовому ящику, почтовому клиенту:

объект «Почта» и объект «Интернет почта», каждый из объектов имеет свои достоинства.

Почта — предоставляет доступ к почте через встроенный почтовый клиент, работает по технологии MAPI.

Интернет почта — объект открывает возможности по доступу непосредственно к почтовым ящикам и учетным записям находящимися на почтовом сервере, использование и работа данного объекта не зависит от установленных в системе почтовых клиентов, даже если почтовый клиент установлен в системе «ИнтернетПочта» будет работать параллельно с ним, объект использует интернет-протоколы SMTP, POP3.

1.Получение сообщений объектом «Почта».

Для работы с объектом Почта необходимо наличие установленного на компьютере почтового клиента с описанными учетными записями.

Для подключения к почтовому клиенту у объекта есть метод «Подключиться».

Код 1C v 8.х

 
Почта = Новый Почта;
Почта.Подключиться(,);

Первый параметр — имя профиля, к примеру, если в системе установлен MS Outlook, то как правило его профиль называется Outlook. Следовательно при подключении строка выглядела бы так:

Код 1C v 8.х

 
Почта.Подключиться("Outlook");

Второй параметр отвечает за пароль к учетной записи.

Далее необходимо произвести выбор необходимых нам писем, для этой цели объект Почта имеет метод «Выбрать». У метода два параметра, первый отвечает за выбор непрочитанных писем — Истина (при Ложь будут выбраны все письма, находящиеся в папке «Входящие» почтового клиента), второй отвечает за выборку вложений, при Ложь, вложения выбираются.

//Выбираем все письма, со всеми вложениями.

Код 1C v 8.х

 Сообщения = Почта.Выбрать(Ложь,Ложь);   

(иногда при взаимодействии с Outlook 2003 возникает проблема, при которой 1С 8 просто аварийно завершает работу с ошибкой, именно на данной строке кода, это лечится установкой пакета обновления SP2 для MS Office 2003).

Далее после выборки сообщений необходимо перебрать их в цикле и сохранить, на форме необходимо добавить ТабличноеПоле1 куда будут сохраняться входящие письма.

Код 1C v 8.х

 Для каждого Сообщение Из Сообщения Цикл
//Добавляем строку в табличную часть
СтрокаТП = ТабличноеПоле1.Добавить();

// Перебираем коллекцию получателей сообщения
Для каждого Получатель Из Письмо.Получатели Цикл
Получатели = Получатели + Получатель.Пользователь + " <" + Получатель.Адрес + "> ";
КонецЦикла;

СтрокаТП.Кому = Получатели;
Попытка
СтрокаТП.ОтКого= Сообщение.Отправитель.Адрес;
Исключение
СтрокаТП.ОтКого= Сообщение.Отправитель;
КонецПопытки;

СтрокаТП.Тема = Сообщение.Тема;
СтрокаТП.Текст = Сообщение.Текст;
СтрокаТП.Дата = Сообщение.ДатаПолучения;

// Перебираем вложения письма
Для каждого Вложение Из Сообщение.Вложения Цикл
Вложение.Данные.Записать(Вложение.Наименование);
//Запоминаем имена вложение прикрепленных к данному письму, и сохраним в ТабличноеПоле1
Влож=Влож+Вложение.Наименование+",";
КонецЦикла;

СтрокаТП.ПутьВложения=Влож;
КонецЦикла;

//отключение
Почта.Отключиться();

Все реквизиты входящих писем сохраняются в соответствующие поля табличного поля, вложения сохраняются в каталог временных файлов, а имена вложений в реквизит табличного поля. Для более удобного хранения вложений писем, 1С 8 имеет тип «Хранилище значения», который позволяет хранить двоичные данные, далее при получении сообщений объектом ИнтернетПочта рассмотрим возможность хранения в «Хранилище значения».

2.Отправка сообщений объектом «Почта»

При отправке сообщения, подключение к почтовому клиенту производится точно так же, как и при получении, перед отправкой необходимо подготовить письмо.

Код 1C v 8.х

 Сообщение = Новый ПочтовоеСообщение;
Сообщение.Текст = "текст сообщения";
Сообщение.Отправитель = "petya@pupkin.com";
Сообщение.Тема ="Тема сообщения";
Сообщение.Получатели.Добавить("vasya@pupkin.com");
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\file.jpg"),"file.jpg");

Почта = Новый Почта;

//подключаемся без параметров, к клиенту установленному по умолчанию в системе
Почта.Подключиться(,);

Попытка
//Пытаемся послать письмо
Почта.Послать(Сообщение,Истина);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;

//отключение
Почта.Отключиться();

В методе Почта.Послать(Сообщение,Истина) два параметра, первый принимает ссылку на почтовое сообщение, второй параметр определяет, требуется ли запрос на подтверждение о получении письма адресатом (Истина — запрос включен). После этих операций письмо попадает в папку «Исходящие» почтового клиента, и в зависимости от настроек клиента отправляется сразу или по команде пользователя.

В MS Outlook встроена защита от несанкционированного доступа к адресной книге и базе почтовых сообщений, и защита от несанкционированной отправки электронных писем через службы Outlook. В Outlook 2003 система безопасности срабатывает не только при попытке получить адрес отправителя письма, но даже при попытке получить его текст. В действительности защита выражается в показываемом пользователю окне системы безопасности при обращении к некоторым объектам и свойствам объектов Outlook и предлагает открыть доступ на определенное время, следует разрешить доступ.

3.Получение сообщений объектом «ИнтернетПочта».

Перед подключением к почтовому серверу, для объекта ИнтернетПочта необходимо заполнить данные Профиля учетной записи, и затем передать эти данные в метод «Подключиться».

Код 1C v 8.х

 Функция ПолучитьПрофиль()

Профиль = Новый ИнтернетПочтовыйПрофиль;

// SMTP сервер
Профиль.АдресСервераSMTP = "smtp.pupkin.com";

// Порт SMTP сервера
Профиль.ПортSMTP = 25;

// POP3 сервер
Профиль.АдресСервераPOP3 = "pop.pupkin.com";

// Порт POP3 сервера
Профиль.ПортPOP3 = 110;

// Пароль к почтовому ящику
Профиль.Пароль = "pass";

// Пароль пользователя для SMTP сервера
Профиль.ПарольSMTP = "pass";

// Логин пользователя
Профиль.Пользователь = "vasya";

// Логин пользователя для SMTP сервера
Профиль.ПользовательSMTP = "vasya";

// Время ожидания выполнения операции в секундах

Профиль.ВремяОжидания = 50;
Возврат Профиль;

КонецФункции

Почта = Новый ИнтернетПочта;

Попытка
Почта.Подключиться(ПолучитьПрофиль());
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;

Заголовки=Почта.ПолучитьЗаголовки()
Если Заголовки.Количество()=0 Тогда
Предупреждение("В почтовом ящике нет входящих сообщений!", ,"Нет сообщений");
КонецЕсли;

// Загрузка сообщений в массив
Сообщения = Почта.Выбрать(Истина,Заголовки);

Для каждого Сообщение Из Сообщения Цикл
СтрокаТП = ТабличноеПолеИнтернетПочта.Добавить();
СтрокаТП.Дата = Сообщение.ДатаОтправления;
СтрокаТП.ОтКого = Сообщение.Отправитель.Пользователь + " <" + Сообщение.Отправитель.Адрес + "> ";
СтрокаТП.Тема = Сообщение.Тема;

// Перебираем получателей сообщения
Для каждого Получатель Из Сообщение.Получатели Цикл
КомуВходящие = КомуВходящие + Получатель.Пользователь + " <" + Получатель.Адрес + "> ";
КонецЦикла;
СтрокаТП.Кому = КомуВходящие;

// Перебираем тексты сообщения
Для каждого ТекстСообщения Из Сообщение.Тексты Цикл
ТекстВходящие = ТекстВходящие + ТекстСообщения.Текст;
КонецЦикла;
СтрокаТП.Текст = ТекстВходящие;

// Перебираем вложения письма
Для каждого Вложение Из Сообщение.Вложения Цикл
Вложение.Данные.Записать(Вложение.Name);
СправочникВложения.РеквизитВложение = новый ХранилищеЗначения(Новый ДвоичныеДанные(Вложение.Name));
СправочникВложения.ИмяВложения=Вложение.Name;
КонецЦикла;
КонецЦикла;

// отключение
Почта.Отключиться();

Метод Почта.Выбрать(Истина,Заголовки); имеет два параметра, первый отвечает за удаление писем с сервера (при Истина-удалять), второй параметр отвечает за массив сообщений для выборки (т.е. закачки на компьютер клиента с сервера), если параметр пуст, то выбираются все сообщения находящиеся на сервере.

При переборе вложений, данные полученные из письма сохраняются в реквизит типа ХранилищеЗначения, заранее созданного справочника «СправочникВложения» в конфигураторе, т.к. данные первоначально сохраняются на диск, а затем загружаются в справочник, то, после загрузки в соответствующий реквизит справочника данные можно удалить. Не рекомендуется хранить данные типа ХранилищеЗначения в Табличных частях справочников, т.к. при больших объемах данных это затормаживает работу конфигурации.

4.Отправка сообщений объектом «ИнтернетПочта».

При отправке сообщения используется Функция ПолучитьПрофиль().

Код 1C v 8.х

 
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(ПолучитьПрофиль());
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Сообщение = Новый ИнтернетПочтовоеСообщение;

Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\file.jpg"),"file.jpg");

Сообщение.Отправитель = "vasya@pupkin.com";
Сообщение.ИмяОтправителя = "Вася";
ПочтовыеАдреса = Сообщение.Получатели;
ПочтовыйАдрес = ПочтовыеАдреса.Добавить();
ПочтовыйАдрес.Адрес = "petya@pupkin.com";
Сообщение.Тема ="Тема сообщения";

ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
ИнтернетТекстПочтовогоСообщения.Текст = "Текст сообщения";
ИнтернетТекстПочтовогоСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;

Попытка
// Пытаемся послать письмо
Почта.Послать(Сообщение);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
// отключение
Почта.Отключиться();

Удобно подключить автополучение/автоотправку почты командой «ПодключитьОбработчикОжидания(,)». Первый параметр в команде отвечает за наименование вызываемой процедуры, и второй, период ожидания процедуры в секундах, обычно обработчик ожидания вставляется в глобальный модуль системы (например, в процедуру ПриНачалеРаботыСистемы()) и указывает на процедуру с пометкой Экспорт.

Например, можно создать процедуру ПроверитьПочту, в которую вставить загрузку писем из почтового ящика и вставить ее в следующую строку:

ПодключитьОбработчикОжидания(«ПроверитьПочту»,60)

Также для обработки и просмотра сообщений в формате HTML удобно пользоваться компонентом «Поле HTML документа», для загрузки HTML текста в компонент используется метод ПолеHTMLдокумента.УстановитьТекст(Html), где Html-это документа полученный из текста сообщения. Есть вариант загрузки HTML с диска (если это вложение), ПолеHTMLдокумента.Перейти(«file:\\C:\File.html»).

После использования нескольких или сразу всех способов работы с электронной почтой, образуется полноценный почтовый клиент с возможностью хранения и обработки писем с вложениями на базе 1С предприятие 8.0.

Автор: Alimov Roman


Как организовать работу с почтой без установленного почтового клиента на компьютере пользователя?

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • 1с ошибка загрузки метаданных после установки
  • 1с зуп ошибка выполнения фонового задания длительныеоперации выполнитьсконтекстомклиента
  • 1с ошибка загрузки компоненты odata
  • 1с ошибка доступа к файлу на сервере
  • 1с ошибка доступа к файлу планировщика регламентных заданий

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: