Отправка писем напрямую из 1С:Предприятие экономит время бухгалтеров, менеджеров и программистов, исключая ручной перенос данных в почтовые клиенты. Система поддерживает интеграцию с Microsoft Outlook, SMTP-серверами, Exchange и даже облачными сервисами вроде Yandex.Почты или Mail.ru. Но без правильной настройки отправка может завершаться ошибками — от блокировки антиспамом до потери форматирования писем.

В этой статье разберём все актуальные способы отправки писем из 1С: от простого встроенного почтового клиента до автоматизированных рассылок через HTTP-Сервисы. Особое внимание уделим типичным ошибкам (например, Ошибка соединения с SMTP-сервером: 550) и способам их устранения. Если вам нужно отправлять счета, акты или уведомления клиентам прямо из документов 1С — здесь вы найдёте готовые решения с примерами кода.

1. Способы отправки писем из 1С: сравнение методов

В 1С:Предприятие 8.3 доступно 5 основных способов отправки писем, каждый из которых подходит для разных задач. Выбор метода зависит от объёма рассылок, требований к безопасности и инфраструктуры компании. Ниже — сравнительная таблица с ключевыми параметрами:

Метод Сложность настройки Поддержка вложений Массовая рассылка Требует лицензию
Встроенный почтовый клиент Низкая Да Ограничено Нет
SMTP (прямое подключение) Средняя Да Да Нет
Microsoft Exchange Высокая Да Да Да (сервер)
HTTP-АPI (Yandex, Mail.ru) Средняя Да Да Нет
Внешние обработки (например, 1С:Рарус) Низкая Да Да Да (доп. модуль)

Для единоразовой отправки (например, отправки счёта клиенту) достаточно встроенного клиента. Если же требуется автоматизированная рассылка (напоминания о долгах, акты сверки), лучше использовать SMTP или HTTP-АPI. Microsoft Exchange актуален для корпоративных пользователей с внутренней почтовой инфраструктурой.

📊 Какой способ отправки писем вы используете в 1С?
Встроенный клиент
SMTP
Exchange
HTTP-API (Yandex/Mail.ru)
Другое

2. Отправка через встроенный почтовый клиент 1С

Самый простой способ — использовать встроенные инструменты платформы. Этот метод не требует дополнительных настроек сервера и подходит для отправки одиночных писем (например, счёта из документа РеализацияТоваровУслуг).

Чтобы отправить письмо:

  • 📌 Откройте документ, который нужно отправить (например, счёт).
  • 🖱️ Нажмите кнопку Ещё → Отправить по почте (или Печать/Отправить → По почте в зависимости от конфигурации).
  • 📝 В открывшемся окне укажите:
    • Адрес получателя (поле Кому)
    • Тему письма (автоматически подставляется название документа)
    • Текст сообщения (можно редактировать)
    • Формат вложения (PDF, Excel, Word)
  • 📤 Нажмите Отправить.

☑️ Подготовка к отправке через встроенный клиент

Выполнено: 0 / 4

⚠️ Внимание: Встроенный клиент использует настройки почты из Параметры пользователя (раздел Администрирование → Настройки пользователя). Если письма не отправляются, проверьте:

  • 🔹 Правильность указанного SMTP-сервера и порта (обычно 25, 465 или 587).
  • 🔹 Логин и пароль от почтового ящика (если требуется аутентификация).
  • 🔹 Наличие антиспам-фильтров на стороне получателя (письма могут попадать в спам).

Если вы используете Yandex.Почту или Mail.ru, возможно, потребуется включить опцию "Разрешить доступ по протоколу SMTP" в настройках аккаунта. Для Gmail может понадобиться двухфакторная аутентификация или генерация пароля приложения.

3. Настройка отправки через SMTP-сервер

Для массовых рассылок или автоматизированной отправки писем (например, при проведении документа) удобнее использовать прямое подключение к SMTP-серверу. Этот метод требует предварительной настройки в конфигураторе, но обеспечивает высокую надёжность и гибкость.

Шаги настройки:

  1. Откройте конфигуратор 1С в режиме Администратор.
  2. Перейдите в Администрирование → Настройки программы → Почта и обмен.
  3. Выберите Настройки SMTP и заполните поля:
    Сервер SMTP: smtp.yandex.ru (или ваш корпоративный сервер)
    

    Порт: 465 (для SSL) или 587 (для TLS)

    Логин: ваш_email@yandex.ru

    Пароль:

    Использовать SSL: Да

  4. Сохраните настройки и перезапустите 1С.

Для отправки письма из кода используйте следующий пример (подходит для управляемых форм):

Процедура ОтправитьПисьмоЧерезSMTP(АдресПолучателя, Тема, Текст, Вложение = Неопределено)

Попытка

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

Сообщение = Почта.СоздатьСообщение();

Сообщение.Кому = АдресПолучателя;

Сообщение.Тема = Тема;

Сообщение.Текст = Текст;

Если Вложение <> Неопределено Тогда

Сообщение.Вложения.Добавить(Вложение);

КонецЕсли;

Почта.Отправить(Сообщение);

Возврат Истина;

Исключение

Сообщить("Ошибка отправки: " + ОписаниеОшибки());

Возврат Ложь;

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

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

💡

Если письма уходят в спам, добавьте в текст сообщения строку "Это письмо отправлено автоматически из 1С:Предприятие. Пожалуйста, не отвечайте на него." — это снизит вероятность блокировки антиспам-фильтрами.

⚠️ Внимание: Некоторые почтовые сервисы (например, Gmail) блокируют доступ по SMTP для "подозрительных" приложений. В этом случае:

  • 🔓 Включите опцию "Разрешить менее безопасные приложения" в настройках аккаунта (для Gmail).
  • 🔑 Или используйте OAuth 2.0 для аутентификации (требует доработки кода).

4. Интеграция с Microsoft Exchange

Если ваша компания использует Microsoft Exchange Server или Office 365, можно настроить отправку писем напрямую через этот сервис. Это актуально для корпоративных пользователей, где важна синхронизация с Outlook и контроль за исходящей перепиской.

Для настройки:

  1. Установите компоненту 1С:Интеграция с Microsoft Exchange (доступна в 1С:ИТС).
  2. В конфигураторе перейдите в Администрирование → Интеграция → Настройки Exchange.
  3. Укажите:
    • 📌 Адрес сервера Exchange (например, outlook.office365.com).
    • 🔑 Логин и пароль пользователя (или токен OAuth).
    • 🔒 Протокол подключения (EWS или REST API).
  4. Протестируйте соединение кнопкой Проверить подключение.
  5. Пример кода для отправки письма через Exchange:

    Процедура ОтправитьЧерезExchange(АдресПолучателя, Тема, Текст)
    

    Обмен = Новый ОбменСExchange;

    Если Не Обмен.Подключен() Тогда

    Сообщить("Не удалось подключиться к Exchange!");

    Возврат;

    КонецЕсли;

    Письмо = Обмен.СоздатьПисьмо();

    Письмо.Кому = АдресПолучателя;

    Письмо.Тема = Тема;

    Письмо.Текст = Текст;

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

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

    🔹 Преимущества метода:

    • 📊 Синхронизация с календарём и задачами Outlook.
    • 🔒 Высокий уровень безопасности (поддержка OAuth 2.0).
    • 📈 Возможность отслеживания статуса доставки.
    Что делать, если Exchange не подключается?

    Проверьте, разрешён ли доступ к EWS API в настройках Office 365 (Admin Center → Settings → API permissions). Также убедитесь, что ваш IP-адрес не заблокирован политиками безопасности компании.

    5. Отправка писем через HTTP-API (Yandex, Mail.ru, SendPulse)

    Если стандартные методы не подходят (например, из-за блокировки SMTP провайдером), можно использовать HTTP-запросы к API почтовых сервисов. Этот способ гибкий и позволяет отправлять письма даже с облачных серверов 1С, где прямые соединения могут быть ограничены.

    Для работы потребуется:

    • 🔑 API-ключ от почтового сервиса (например, Yandex.PDD или Mail.ru Cloud Solutions).
    • 📡 Библиотека для HTTP-запросов (входит в стандартную поставку 1С 8.3.20+).

Пример кода для отправки через Yandex.PDD API:

Функция ОтправитьЧерезYandexAPI(АдресПолучателя, Тема, Текст, APIКлюч)

Заголовки = Новый Соответствие();

Заголовки.Вставить("Authorization", "Bearer " + APIКлюч);

Заголовки.Вставить("Content-Type", "application/json");

ТелоЗапроса = Новый Структура();

ТелоЗапроса.Вставить("to", АдресПолучателя);

ТелоЗапроса.Вставить("subject", Тема);

ТелоЗапроса.Вставить("text", Текст);

HTTPСоединение = Новый HTTPСоединение("pddimp.yandex.ru", 443, Истина);

Ответ = HTTPСоединение.ОтправитьДляОбработки("/api3/email/send",

Новый HTTPЗапрос("POST", "", Заголовки, Новый ЗаписьJSON(ТелоЗапроса)));

Если Ответ.КодСостояния = 200 Тогда

Возврат Истина;

Иначе

Сообщить("Ошибка API: " + Ответ.ПолучитьТекст());

Возврат Ложь;

КонецЕсли;

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

📌 Важно: Для Mail.ru и SendPulse структура запроса будет отличаться. Подробные спецификации API смотрите в документации сервисов. Например, для Mail.ru потребуется указать параметр "from" с подтверждённым адресом отправителя.

💡

HTTP-API — единственный способ отправки писем с облачных серверов 1С (1C:Fresh), где прямые SMTP-соединения заблокированы.

6. Массовая рассылка писем из 1С

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

Алгоритм массовой рассылки:

  1. Сформируйте список получателей (например, выборка из справочника Контрагенты с фильтром по долгу).
  2. Создайте шаблон письма (можно с подстановкой данных из 1С, например, суммы долга).
  3. Настройте параметры отправки (SMTP, Exchange или API).
  4. Запустите рассылку в фоновом задании, чтобы не блокировать работу пользователей.

Пример кода для массовой рассылки через SMTP:

Процедура МассоваяРассылка(СписокПолучателей, ШаблонТекста)

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

Для Каждого Получатель Из СписокПолучателей Цикл

ТекстПисьма = СтроковыеФункции.ПодставитьПараметрыВСтроку(

ШаблонТекста,

"Имя=Получатель.Наименование;СуммаДолга=Получатель.СуммаДолга");

Сообщение = Почта.СоздатьСообщение();

Сообщение.Кому = Получатель.Email;

Сообщение.Тема = "Напоминание о задолженности";

Сообщение.Текст = ТекстПисьма;

Попытка

Почта.Отправить(Сообщение);

ЗаписьЛога("Письмо отправлено: " + Получатель.Email);

Исключение

ЗаписьЛога("Ошибка отправки " + Получатель.Email + ": " + ОписаниеОшибки());

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

КонецЦикла;

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

⚠️ Внимание: При массовых рассылках:

  • 🛑 Избегайте отправки более 50 писем в минуту — это может привести к блокировке аккаунта.
  • 📧 Используйте подписи DKIM/SPF, чтобы письма не попадали в спам.
  • 📊 Ведите лог отправки для отслеживания ошибок.

7. Типичные ошибки и их решение

При отправке писем из 1С пользователи часто сталкиваются с ошибками. Ниже — список самых распространённых проблем и способы их устранения:

Ошибка Причина Решение
Ошибка соединения с SMTP-сервером: 550 Сервер отклонил подключение (неверный логин/пароль или IP в чёрном списке). Проверьте учётные данные и настройки безопасности на сервере.
Не удалось отправить письмо: Timeout Сервер не отвечает (проблемы с сетью или блокировка фаерволом). Проверьте подключение к интернету и настройки брандмауэра.
Ошибка аутентификации: 535 Неправильный пароль или требуется двухфакторная аутентификация. Сгенерируйте пароль приложения (для Gmail) или включите доступ для менее безопасных приложений.
Письма уходят в спам Отсутствуют DKIM/SPF-записи или подозрительный контент. Настройте записи в DNS и добавьте в письмо ссылку на отписку.
Ошибка: Не удалось создать сообщение Не хватает прав или повреждена конфигурация. Запустите 1С от имени администратора или восстановите конфигурацию.

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

Отладка = Новый ОтладкаПочты;

Отладка.Включить();

Почта.Отправить(Сообщение);

Лог = Отладка.ПолучитьЛог();

Как включить расширенные логи для SMTP в 1С?

В файле 1cv8.lst (папка с платформой) добавьте строку LOGPOP3SMTP=1. После этого в логах появятся детали обмена с сервером.

8. Автоматизация отправки писем при событиях

Чтобы письма отправлялись автоматически (например, при проведении документа или по расписанию), используйте триггеры или регламентные задания. Это избавит пользователей от ручной отправки и снизит риск ошибок.

Пример автоматизации для конфигурации 1С:Управление торговлей 11:

  1. Откройте конфигуратор и найдите документ, для которого нужна автоматическая отправка (например, ЗаказПокупателя).
  2. Добавьте обработчик события ПриПроведении:
Процедура ПриПроведении(Отказ, РежимПроведения)

Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда

АдресПолучателя = Клиент.ЭлектроннаяПочта;

Если Не ПустаяСтрока(АдресПолучателя) Тогда

ОтправитьПисьмоЧерезSMTP(

АдресПолучателя,

"Ваш заказ №" + Номер + " от " + Дата,

"Здравствуйте! Ваш заказ принят в обработку. Сумма: " + СуммаДокумента,

ПолучитьВложениеPDF()

);

КонецЕсли;

КонецЕсли;

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

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

  1. Перейдите в Администрирование → Регламентные задания.
  2. Создайте новое задание с типом Выполнение кода.
  3. Укажите расписание (например, Каждый понедельник в 9:00).
  4. В поле Код вставьте процедуру массовой рассылки (см. раздел 6).

⚠️ Внимание: При автоматической отправке:

  • 🔄 Всегда тестируйте рассылку на тестовых адресах перед запуском.
  • 📅 Учитывайте часовой пояс получателей (например, не отправляйте письма ночью).
  • 📊 Ведите статистику открытий (для этого можно интегрировать 1С с сервисами вроде SendPulse).

Если вам нужна продвинутая аналитика (отслеживание открытий, кликов по ссылкам), рассмотрите интеграцию с 1С:Рарус.Почта или Bitrix24.

FAQ: Частые вопросы по отправке писем из 1С

Можно ли отправлять письма с вложениями из 1С?

Да, все рассмотренные методы (SMTP, Exchange, API) поддерживают вложения. Для этого используйте метод Сообщение.Вложения.Добавить(). Например:

Вложение = Новый ВложениеФайла("C:\Отчеты\Счет.pdf");

Сообщение.Вложения.Добавить(Вложение);

Максимальный размер вложения зависит от настроек почтового сервера (обычно до 25 МБ).

Как отправить письмо с HTML-разметкой?

Для отправки писем с форматированием (жирный текст, таблицы, изображения) укажите свойство Сообщение.ТипТекста = ТипТекстаПочты.HTML и передайте текст с тегами:

Сообщение.ТипТекста = ТипТекстаПочты.HTML;

Сообщение.Текст = "<h1>Привет, " + ИмяКлиента + "!</h1><p>Ваш счёт на сумму <strong>" + Сумма + "</strong> руб.</p>";

⚠️ Не все почтовые клиенты корректно отображают сложное HTML-форматирование. Тестируйте письма перед массовой рассылкой.

Почему письма из 1С попадают в спам?

Основные причины:

  • 📛 Отсутствуют DKIM/SPF-записи для домена отправителя.
  • 📧 Адрес отправителя не совпадает с доменом сервера (например, отправляете с user@company.ru, но сервер — smtp.yandex.ru).
  • 📝 В письме есть "спамовые" слова ("бесплатно", "акция", "срочно").
  • 🔢 Большой объём писем за короткий промежуток времени.

Решение: настройте записи в DNS, используйте подтверждённые домены и ограничьте скорость рассылки.

Как отправить письмо с копией (CC/BCC)?

Используйте свойства Сообщение.Копия и Сообщение.СкрытаяКопия:

Сообщение.Копия = "copy@example.com";

Сообщение.СкрытаяКопия = "bcc@example.com";

Для массовой рассылки с скрытой копией всем получателям:

Сообщение.СкрытаяКопия = СтрСоединить(СписокАдресов, ";");
Можно ли отправить письмо из 1С:Fresh (облако)?

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

  • 📧 HTTP-API почтовых сервисов (см. раздел 5).
  • 🔄 Внешние обработки (например, 1С:Рарус.Почта).
  • 📤 Экспорт данных в файл и ручную отправку через почтовый клиент.

Для автоматизации рекомендуем Yandex.PDD API или SendPulse.