Обработка отправки электронной почты из 1С
Доброго времени суток, уважаемые коллеги! Хочу обратить ваше внимание на обработку, которая отправляет и принимает сообщения электронной почты в любой конфигурации на управляемых формах. На нашем сайте уже есть статья, посвященная теме отправки почты из 1С. В этой заметке будет рассказано о программной реализации возможности отправки и получения почтовых сообщений из 1С. Кроме того, буду рассмотрены дополнительные ошибки, которые могут возникнуть при работе с электронной почтой.
- Описание работы обработки отправки электронной почты
- Часть программного кода обработки на встроенном языке 1С
- Ошибки, которые могут появиться после настройки почты gmail
- Демонстрация работы обработки 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С.