Как настроить электронную почту в 1С для отправки счетов и исправить ошибки SMTP 451 и 503

Системный администратор 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

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

Классическая настройка учетной записи электронной почты в обычных формах 1С

Для начала рассмотрим, как настраивается электронная почта в более ранних конфигурациях 1С (например, Управление торговлей 10.3, Управление производственным предприятием 1.3 или Бухгалтерия предприятия 2.0). Если вы работаете в таком интерфейсе, алгоритм действий будет следующим:

  1. Перейдем в меню Справочники -> Электронная почта -> Учетные записи электронной почты.
  2. Нажмем кнопку создания новой учетной записи.
  3. На вкладке Подключения укажем адрес нашей электронной почты, а также серверы входящей (POP3) и исходящей (SMTP) почты. Например, для Mail.ru это будут smtp.mail.ru и pop.mail.ru соответственно. Обязательно введем имя пользователя (логин) и пароль. Помните, что логин должен содержать символ @ и полное имя домена (например, user@mail.ru), иначе сервер отклонит попытку авторизации.
  4. На вкладке Доступ укажем пользователя системы (себя) и проставим флажки прав доступа.
  5. На вкладке Дополнительно установим кодировку для исходящих писем. Рекомендуется использовать кодировку windows-1251 (Кириллица Windows) для старых систем или универсальную utf-8.
  6. Сохраним настройки.
  7. Перейдем в меню Сервис -> Настройки пользователя. В группе параметров Встроенный почтовый клиент выберем созданную учетную запись как значение по умолчанию. Здесь же зададим кодировку письма по умолчанию.

После этого перейдем в справочник Контрагенты и на вкладке Контакты заполним поле E-mail для тех партнеров, которым планируется отправка документов. Теперь при формировании печатной формы «Счет на оплату» мы сможем нажать на иконку конверта в левом верхнем углу, выбрать формат вложения (например, XLS или PDF) и отправить письмо напрямую.

Современные требования почтовых провайдеров: переходим на новые стандарты безопасности

Мир веб-технологий не стоит на месте, и классические настройки, которые без проблем работали несколько лет назад, сегодня гарантированно приведут к ошибкам авторизации или блокировке отправки. Давайте проанализируем, почему это происходит и как настроить систему с учетом актуальных стандартов безопасности Яндекса, Mail.ru, Google и других крупных сервисов.

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

  1. Зайдем в настройки безопасности вашего почтового ящика через веб-интерфейс в браузере (например, в личном кабинете Яндекс ID или Mail.ru).
  2. Найдем раздел Пароли приложений (или «Безопасность» -> «Доступ к почте сторонних программ»).
  3. Создадим новый пароль для приложения, выбрав тип «Почта» и указав произвольное имя (например, «1С Предприятие»).
  4. Система сгенерирует уникальный 16-значный код. Скопируем его.
  5. Именно этот сгенерированный код необходимо вставить в поле Пароль при настройке учетной записи в 1С. Обычный пароль от почты больше использовать нельзя!

Шифрование SSL/TLS и новые порты. Ранее в настройках часто использовался стандартный порт SMTP 25 без шифрования. Сегодня большинство провайдеров интернета блокируют 25-й порт на сетевом уровне для борьбы со спамом, а сами почтовые серверы требуют обязательного безопасного соединения. Поэтому при настройке учетной записи необходимо:

Использование протокола IMAP предпочтительнее, поскольку он синхронизирует состояние писем между сервером и 1С. Письма не удаляются с сервера локально (как это часто происходило при настройках POP3 по умолчанию), а статус прочтения обновляется синхронно на всех устройствах.

Разбор ошибки: SMTP error code 503, Administrative prohibition -- authorization required

Рассмотрим частую ошибку, с которой сталкиваются пользователи при первой настройке почты:

Ошибка при вызове метода контекста (Послать): Неизвестная ошибка (SMTP error code 503, Administrative prohibition -- authorization required. Users in your domain are not allowed to send email without authorization)

Выясним причину этого сбоя. Буквальный перевод сообщения об ошибке звучит так: «Административный запрет — требуется авторизация. Пользователям вашего домена запрещено отправлять почту без авторизации». Многие пользователи удивляются: «Но ведь при нажатии кнопки "Проверить подключение" программа пишет, что проверка выполнена успешно!»

Дело в том, что при проверке подключения 1С зачастую тестирует только протокол входящей почты (POP3 или IMAP) — то есть авторизуется для получения писем. А вот при попытке отправить письмо через SMTP-сервер авторизация не проходит. Для устранения этой ошибки выполним следующие действия:

  1. Откроем настройки учетной записи электронной почты в 1С.
  2. Убедимся, что включена опция SMTP-сервер требует аутентификации (или «Требуется авторизация для отправки писем»).
  3. Укажем, что для отправки исходящих писем используются те же логин и пароль (пароль приложения), что и для входящей почты. Если в конфигурации предусмотрена отдельная настройка аутентификации для SMTP, введем данные вручную.

Разбор ошибки: SMTP error code 451 Temporary local problem / Requested action aborted

Другая распространенная проблема выражается следующим сообщением:

Ошибка при вызове метода контекста (Послать): Локальная ошибка сервера (SMTP error code 451, 4.7.1 Requested action aborted: error in processing)

Или аналогичное сообщение:

SMTP error code 451 Temporary local problem - please try later

Давайте проанализируем природу этой ошибки. Код 451 указывает на то, что сервер получателя или ваш собственный SMTP-сервер временно отклонил запрос из-за локальных ограничений или временного сбоя обработки. Основные причины возникновения этой ошибки в современных реалиях:

  1. Превышение лимитов отправки (Rate Limits). Почтовые провайдеры строго следят за тем, чтобы через их серверы не рассылался спам. Если вы пытаетесь отправить из 1С массовую рассылку счетов или актов (например, более 50 писем за короткий промежуток времени), SMTP-сервер заблокирует сессию кодом 451.
  2. Серые списки (Greylisting). Это популярная технология защиты от спама на стороне сервера получателя. При первом обращении отправителя сервер получателя умышленно возвращает ошибку 451, имитируя временный сбой. Спам-боты обычно повторно письма не отправляют, в то время как легитимный почтовый сервер повторит попытку отправки через определенное время.
  3. Антивирусная проверка и фаерволы. Часто локальные антивирусные программы или брандмауэры на компьютере пользователя перехватывают исходящий трафик по порту SMTP и блокируют отправку вложений большого размера, что приводит к разрыву соединения и ошибке 451.

Как же решить эту проблему в 1С?

Как предотвратить разрастание базы данных («пухнет база»)

Важный аспект, который упомянули участники обсуждения: при активном использовании встроенного почтового клиента 1С база данных начинает стремительно увеличиваться в объемах. Это происходит из-за того, что все отправленные и полученные письма вместе с прикрепленными файлами (тяжелыми PDF-сканами, Excel-таблицами, картинками из подписей) сохраняются непосредственно в СУБД (в файловую базу или таблицы SQL-сервера).

Рассмотрим, как решить эту проблему кардинально с помощью современных механизмов платформы 1С 8.3:

  1. Хранение файлов в томах на диске. Это наиболее эффективный инструмент. Вместо сохранения вложений в самой базе данных мы настраиваем их сохранение в сетевую папку на сервере. Для этого перейдем в раздел Администрирование -> Настройки работы с файлами, установим флажок Хранить файлы в томах на диске и создадим соответствующий том (указав к нему UNC-путь, например \\ServerFS\1C_Files). Теперь тело писем будет храниться в базе, а все тяжелые вложения автоматически запишутся на жесткий диск сервера, сохраняя размер базы данных компактным.
  2. Регулярная очистка устаревших писем. Если вам не нужно хранить историю переписки за несколько лет, настройте регламентное задание по очистке старых писем или удаляйте вложения у писем старше одного года. Напишем простой пример кода, демонстрирующий, как можно программно удалять устаревшие сообщения электронной почты из справочника ЭлектронноеПисьмоИсходящее:

ВыборкаПисем = Справочники.ЭлектронноеПисьмоИсходящее.Выбрать();
Пока ВыборкаПисем.Следующий() Цикл
    Если ВыборкаПисем.Дата < ДобавитьМесяц(ТекущаяДата(), -12) Тогда
        ОбъектПисьма = ВыборкаПисем.ПолучитьОбъект();
        Попытка
            ОбъектПисьма.Удалить();
        Исключение
            ЗаписьЖурналаРегистрации("ОчисткаПочты", УровеньЖурналаРегистрации.Ошибка,,, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
        КонецПопытки;
    КонецЕсли;
КонецЦикла;

Отправка файлов без предварительного сохранения на компьютер

Часто у начинающих пользователей возникает вопрос: «Как вложить файл Excel или PDF в электронное письмо напрямую из базы 1С без предварительного сохранения на рабочий стол компьютера?»

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

  1. Формирует табличный документ в оперативной памяти.
  2. В фоновом режиме сохраняет его во временную папку операционной системы во временный файл нужного формата (например, XLSX, PDF или MXL) с помощью метода ТабличныйДокумент.Записать().
  3. Прикрепляет полученный файл к объекту электронного письма в качестве вложения.
  4. Открывает форму отправки письма, где пользователь может дописать текст.
  5. После успешной отправки или закрытия формы временный файл автоматически удаляется с компьютера пользователя.

Давайте посмотрим на программный пример того, как можно реализовать отправку печатной формы документа по почте без вывода на экран промежуточных диалогов сохранения:


// Создаем табличный документ (например, печатную форму счета)
ТабДок = Новый ТабличныйДокумент;
// Здесь должен быть код заполнения табличного документа данными из ИБ
// ...
// Получаем путь во временный каталог для сохранения файла
ПутьКФайлу = КаталогВременныхФайлов() + "Счет_На_Оплату.pdf";
ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);

// Создаем новое письмо
Письмо = Новый ЭлектронноеПисьмо;
Письмо.Тема = "Счет на оплату от " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
Письмо.Тело = "Добрый день! Во вложении направляем счет на оплату.";
Письмо.Получатели.Добавить("client@email.com");

// Прикрепляем созданный временный файл
Вложение = Письмо.Вложения.Добавить(ПутьКФайлу);
Вложение.ИмяБезРасширения = "Счет_На_Оплату";

// Отправляем письмо через системную учетную запись
УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоНаименованию("Системная учетная запись");
Попытка
    УправлениеЭлектроннойПочтой.ОтправитьПисьмо(УчетнаяЗапись, Письмо);
    // Удаляем временный файл с диска после успешной отправки
    УдалитьФайлы(ПутьКФайлу);
Исключение
    ВызватьИсключение "Ошибка отправки письма: " + КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;

Где найти настройки почты в современных конфигурациях 1С 8.3

Если в старых конфигурациях настройки прятались глубоко в меню «Справочники», то в современных интерфейсах «Такси» путь значительно упростился. Для настройки системного почтового ящика выполним следующие шаги:

  1. Перейдем в раздел Администрирование (или НСИ и администрирование).
  2. Выберем пункт Органайзер.
  3. В открывшемся окне найдем группу Почта и нажмем на ссылку Настройка системной учетной записи (или перейдем по ссылке Учетные записи электронной почты для создания нескольких ящиков).
  4. В современных версиях программы достаточно ввести только ваш адрес электронной почты и сгенерированный ранее «пароль приложения». 1С сама свяжется со своей базой настроек и автоматически пропишет серверы, порты и параметры шифрования для популярных почтовых систем (Yandex, Mail, Gmail).

Таким образом, правильное понимание современных стандартов авторизации (использование паролей приложений вместо обычных), переход на шифрование SSL/TLS и протокол IMAP, а также использование томов для хранения файлов позволят вам создать стабильную, быструю и безопасную систему отправки документов напрямую из 1С без лишней ручной работы.

← На главную