Обработка отправки электронной почты из 1С

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

Внешний вид обработки для отправки и получения интернет почты:

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

Описание работы обработки отправки электронной почты

Сообщение в данной обработке формируется с помощью форматированного документа, в нём можно написать форматированный текст, вставить картинки, ссылки и специальные символы.

  • Скачайте обработку по ссылке в конце статьи.
  • Затем откройте её в режиме 1С:Предприятие 8.
  • Перейдите к пункту меню «Файл» | «Открыть…» (Ctrl+O).
  • После открытия напишите сообщение в поле отправки: добавьте картинку, напишите текст.
  • Затем нажмите на кнопку Отправить почту.
  • После того, как получите оповещение, что сообщение успешно отправлено, нажмите кнопку Получить почту.
  • Посмотрите на поле справа, там должно отобразиться ваше полученное сообщение.

Часть программного кода обработки на встроенном языке 1С

Когда вы нажимаете кнопку Отправить почту, то сначала будет получить почтовый профиль с помощью функции ПолучитьПочтовыйПрофиль() и выполняется следующий код:

&НаКлиенте
Функция ПолучитьПочтовыйПрофиль()
	
	// Создадим почтовый профиль из данных на форме
	Профиль = Новый ИнтернетПочтовыйПрофиль;
	
	Профиль.АдресСервераSMTP = СерверSMTP;
	Профиль.ПользовательSMTP = Пользователь;
	Профиль.ПарольSMTP = Пароль;                
	Профиль.ИспользоватьSSLSMTP = Истина;
	
	Профиль.АдресСервераIMAP = СерверIMAP;
	Профиль.ПользовательIMAP = Пользователь;
	Профиль.ПарольIMAP = Пароль;                           
	Профиль.ИспользоватьSSLIMAP = Истина;
	
	Профиль.АдресСервераPOP3 = СерверPOP3;
	Профиль.Пользователь = Пользователь;
	Профиль.Пароль = Пароль;
	Профиль.ИспользоватьSSLPOP3 = Истина;
	
	Возврат Профиль;
	
КонецФункции

Три свойства профиля ПортSMTPПортIMAP и ПортPOP3 не указаны. А если это так, то для всех соединений (защищенных или незащищенных) будут указаны стандартные порты. Если у вас задача использовать нестандартные порты, то вы можете задать значения этих свойств. С помощью полученного почтового профиля выполняется подключение к нужному почтовому серверу.

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

Ошибки, которые могут появиться после настройки почты gmail

{ВнешняяОбработка.ОтправкаПочты.Форма.Форма.Форма(33)}: Ошибка при вызове метода контекста (Подключиться): Сервис отключен с разрывом канала (SMTP error code 421 SMTP connection broken (reply))
  • Эта ошибка может быть, когда отправляется письмо на тот же ящик и в скрытой копии написан тот же почтовый адрес. Если убрать из скрытой копии, то письмо отправится. 
  • Проверить правильность написания названия сервера, особенно когда копируете название, чтобы избежать ошибок копи-паста.
{ВнешняяОбработка.ОтправкаПочты.Форма.Форма.Форма(33)}: Ошибка при вызове метода контекста (Подключиться): Аутентификация не прошла (SMTP error code 535 5.7.8 Username and Password not accepted. Learn more at 5.7.8  https://support.google.com/mail/?p=BadCredentials a81sm5846218wmf.32 - gsmtp)

Эта ошибка связана с отправкой писем по SMTP. Как указано в тексте этой ошибки, можно перейти по ссылке https://support.google.com/mail/?p=BadCredentials и сделать как там советуется. Можно сделать такие шаги:

  • Откройте в браузере устройства адрес https://accounts.google.com/DisplayUnlockCaptcha.
  • Если вы не авторизованы, то ведите имя пользователя и пароль.
  • Вернитесь в обработку 1С и попробуйте снова получить почту. После перехода по ссылке, вы увидите сообщение:

Доступ предоставлен

Теперь вы можете войти в свой аккаунт Google с помощью нового устройства или приложения.

У меня всё заработало только после того, как я сначала перешел по ссылке https://myaccount.google.com/lesssecureapps и разрешил небезопасные приложения. Потом открыл в браузере устройства адрес https://accounts.google.com/DisplayUnlockCaptcha.

Ошибка при подключении или приеме {ВнешняяОбработка.ОтправкаПочты.Форма.Форма.Форма(64)}: Ошибка при вызове метода контекста (Подключиться): Произошла ошибка при работе с IMAP. Код ошибки: 28 Ответ сервера: Invalid credentials (Failure)

Эта ошибка связана с получением писем по IMAP. Решение этой проблемы было таким: Я убрал галочку с ИспользоватьIMAP в обработке и сообщения сразу стали приходить через POP3. То есть, я стал принимать письма через POP3. Хотя на следующий день у меня нормально стала работать почта и через IMAP. Вот ещё ошибки, с которыми я столкнулся при настройке работы почты 1С.

Демонстрация работы обработки 1С отправки и приёма почты

https://youtu.be/ql5tHc3Ezt8

ПОДПИСКА