Отправка электронных писем прямо из 1С:Предприятие — одна из самых востребованных функций для автоматизации бизнес-процессов. С её помощью можно рассылать счета клиентам, уведомлять сотрудников о задачах, отправлять отчёты партнёрам или даже интегрировать систему с CRM. Однако многие пользователи сталкиваются с трудностями: то настройки SMTP не работают, то письма уходят в спам, то вообще возникают ошибки при подключении к серверу.
В этой статье мы разберём 5 проверенных способов отправки писем из 1С — от простейших встроенных механизмов до сложных интеграций с внешними сервисами. Вы узнаете, как настроить отправку через SMTP-серверы (включая Yandex, Mail.ru и Gmail), как использовать ПомощникПочтовыхСообщений, а также как автоматизировать рассылки с помощью заданий регламентных операций. Особое внимание уделим типичным ошибкам и способам их устранения — это сэкономит вам часы на поиск решений.
Материал актуален для 1С:Предприятие 8.3 (всех редакций) и 8.2, но некоторые методы могут потребовать доработки для устаревших конфигураций. Если вы работаете с облачной версией 1С:Fresh, учтите, что настройки почты там ограничены — об этом мы тоже упомянем.
1. Подготовка к отправке писем: что нужно проверить до настройки
Прежде чем приступать к настройке, убедитесь, что у вас есть всё необходимое. Без этих подготовленных данных даже самый простой способ отправки не заработает.
Во-первых, проверьте доступность SMTP-сервера. Если вы используете корпоративную почту (например, на домене вашей компании), уточните у администратора:
- 🔹 Адрес SMTP-сервера (например,
smtp.yandex.ruилиmail.company.ru) - 🔹 Порт подключения (обычно
25,465или587) - 🔹 Требуется ли SSL/TLS (чаще всего — да)
- 🔹 Логин и пароль для аутентификации (иногда это не совпадает с данными для входа в веб-почту!)
Во-вторых, убедитесь, что антивирус или брандмауэр не блокирует исходящие соединения. Особенно это актуально для портов 25 и 465, которые часто закрыты провайдерами. Если письма не уходят, попробуйте временно отключить защиту или добавить исключение для 1С:Предприятие.
Наконец, подготовьте тестовый почтовый ящик, на который будете отправлять письма. Лучше использовать адрес на другом домене (например, если отправляете с Yandex, проверяйте на Mail.ru или Gmail). Это поможет отловить проблемы со спам-фильтрами.
⚠️ Внимание: Если вы используете Gmail в качестве SMTP-сервера, включите опцию «Разрешить менее безопасные приложения» в настройках аккаунта. Иначе 1С не сможет подключиться. С 2022 года Google также может требовать двухфакторную аутентификацию — в этом случае потребуется создать пароль приложения.
2. Способ 1: Отправка через встроенный «Помощник почтовых сообщений»
Самый простой метод, который не требует программирования — использование встроенного помощника. Он доступен в большинстве типовых конфигураций (1С:Бухгалтерия, 1С:УТ, 1С:ЗУП и др.).
Чтобы отправить письмо:
- Откройте нужный документ (например, счёт на оплату или акт выполненных работ).
- Нажмите кнопку «Ещё» (или «Действия») → «Отправить по почте».
- В открывшемся окне выберите «Новое сообщение».
- Заполните поля:
- 📧 Кому — адрес получателя
- 📝 Тема — краткое описание (например, «Счёт №123 от 01.06.2026»)
- 📎 Вложения — автоматически подставляется текущий документ
- 💬 Текст письма — можно использовать шаблоны
- Нажмите «Отправить».
- ✅ Не требует знания программирования
- ✅ Автоматически подставляет данные из документа
- ✅ Поддерживает шаблоны писем
- ❌ Работает не во всех конфигурациях
- ❌ Нет гибкой настройки (например, нельзя задать время отправки)
- ❌ При ошибках сложно диагностировать проблему
Если помощник не появляется, проверьте, включена ли функциональность почтовой рассылки в настройках программы (Администрирование → Настройки программы → Почта). В некоторых конфигурациях этот модуль отключён по умолчанию.
Настроены ли почтовые профили в 1С?
Есть ли доступ к SMTP-серверу?
Правильно ли заполнены адреса получателей?
Прикреплены ли нужные вложения?
-->
Преимущества этого способа:
Недостатки:
3. Способ 2: Настройка SMTP-соединения вручную (для программистов)
Если вам нужно больше контроля над отправкой писем, можно написать собственный код на встроенном языке 1С. Этот метод подходит для автоматизации рассылок, отправки уведомлений по расписанию или интеграции с внешними системами.
Пример кода для отправки письма через SMTP:
// Подключаем библиотеку для работы с почтой
ПодключитьВнешнююКомпоненту("C:\Program Files\1cv8\8.3.20.1500\bin\Mail.dll");
Почта = Новый Почта;
// Настройки SMTP
СерверSMTP = "smtp.yandex.ru";
ПортSMTP = 465;
ИспользоватьSSL = Истина;
Логин = "ваш_логин@yandex.ru";
Пароль = "ваш_пароль";
// Создаём сообщение
Сообщение = Новый ПочтовоеСообщение;
Сообщение.Тема = "Тестовое письмо из 1С";
Сообщение.Текст = "Это письмо отправлено автоматически из 1С:Предприятие.";
Сообщение.Отправитель = Логин;
Сообщение.Получатели.Добавить("получатель@example.com");
// Отправляем
Попытка
Почта.Отправить(СерверSMTP, ПортSMTP, ИспользоватьSSL, Логин, Пароль, Сообщение);
Сообщить("Письмо успешно отправлено!");
Исключение
Сообщить("Ошибка отправки: " + ОписаниеОшибки());
КонецПопытки;
Этот код можно вставить в обработку или модуль документа. Для работы потребуется внешняя компонента Mail.dll (обычно идёт в комплекте с 1С). Если её нет, скачайте с сайта 1С или используйте альтернативные библиотеки, например, OpenSSL для шифрования.
Распространённые ошибки при ручной настройке:
| Ошибка | Причина | Решение |
|---|---|---|
Ошибка аутентификации (535) |
Неправильный логин/пароль или не включён доступ для приложений | Проверьте данные для входа, включите «менее безопасные приложения» в настройках почты |
Не удалось подключиться к серверу (10060) |
Порт заблокирован брандмауэром или провайдером | Попробуйте другой порт (например, 587 вместо 465) или отключите брандмауэр |
Письмо не отправлено без ошибок |
Сервер принял письмо, но не доставил его (попало в спам) | Проверьте папку «Спам» у получателя, настройте SPF/DKIM для домена |
⚠️ Внимание: Если вы используете Microsoft Exchange или Corporate Mail, может потребоваться дополнительная настройка аутентификации OAuth 2.0. В этом случае простой логин/пароль не сработает — нужно получать токен доступа через API.
4. Способ 3: Автоматическая рассылка через регламентные задания
Если вам нужно отправлять письма по расписанию (например, ежедневные отчёты или напоминания о просроченных платежах), используйте регламентные задания. Этот метод позволяет запускать отправку в фоновом режиме без участия пользователя.
Как настроить:
- Откройте
Администрирование → Регламентные задания. - Создайте новое задание с типом «Выполнение кода».
- В поле «Код» вставьте обработчик отправки писем (аналогичный примеру из Способа 2).
- Настройте расписание (например, «Ежедневно в 9:00»).
- Укажите пользователя, от имени которого будет выполняться задание (у него должны быть права на отправку почты).
Пример кода для регламентного задания (отправка отчёта по продажам):
Процедура Выполнить() Экспорт
// Получаем данные для отчёта
Отчет = ПолучитьОтчетПоПродажам(НачалоДня(ТекущаяДата()), КонецДня(ТекущаяДата()));
// Формируем письмо
Сообщение = Новый ПочтовоеСообщение;
Сообщение.Тема = "Отчёт по продажам за " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
Сообщение.Текст = "Прикреплён отчёт по продажам за текущий день.";
Сообщение.Получатели.Добавить("director@example.com");
// Прикрепляем отчёт в формате Excel
Вложение = Новый ПочтовоеВложение(Отчет.СохранитьВоВременныйФайл("xlsx"), "Отчет_по_продажам.xlsx");
Сообщение.Вложения.Добавить(Вложение);
// Отправляем
ОтправитьПочту(Сообщение);
КонецПроцедуры
Преимущества регламентных заданий:
- 🕒 Автоматическая отправка без ручного запуска
- 📊 Можно прикреплять динамические данные (отчёты, выгрузки)
- 🔄 Поддерживает повторяющиеся задачи (ежедневно, еженедельно)
Если письма не уходят через регламентное задание, проверьте журнал регистрации (Администрирование → Журнал регистрации). Часто там можно увидеть подробную ошибку, которую не показывает интерфейс.
5. Способ 4: Интеграция с внешними почтовыми сервисами (API)
Для массовых рассылок или сложных сценариев (например, отправка писем с персонализацией) лучше использовать API почтовых сервисов. Это надёжнее, чем SMTP, и позволяет отслеживать статус доставки.
Популярные сервисы для интеграции:
- 📧 Yandex.PDD (Почта для домена) — подходит для корпоративной почты
- 📧 SendPulse или UniSender — для массовых рассылок
- 📧 Mailgun или SendGrid — зарубежные сервисы с высокой доставляемостью
Пример интеграции с Yandex.PDD через HTTP-запросы:
Функция ОтправитьЧерезYandexAPI(Тема, Текст, Получатель)
// Настройки API
URL = "https://api.pdd.yandex.ru/email/x/imap/send";
Токен = "ваш_OAuth_токен";
Отправитель = "robot@ваш-домен.ru";
// Формируем тело запроса
Тело = Новый Структура;
Тело.Вставить("from", Отправитель);
Тело.Вставить("to", Получатель);
Тело.Вставить("subject", Тема);
Тело.Вставить("text", Текст);
// Отправляем запрос
Запрос = Новый HTTPЗапрос(URL);
Запрос.УстановитьЗаголовок("Authorization", "OAuth " + Токен);
Запрос.УстановитьЗаголовок("Content-Type", "application/json");
Запрос.УстановитьТекст(СериализоватьJSON(Тело));
Ответ = Новый HTTPСоединение;
Попытка
Ответ = ОтправитьHTTPЗапрос(Запрос);
Если Ответ.КодСостояния = 200 Тогда
Возврат Истина;
Иначе
Сообщить("Ошибка API: " + Ответ.ПолучитьТекст());
Возврат Ложь;
КонецЕсли;
Исключение
Сообщить("Ошибка соединения: " + ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;
КонецФункции
Для работы с API потребуется:
- Зарегистрировать приложение в личном кабинете почтового сервиса.
- Получить API-ключ или OAuth-токен.
- Настроить обратные адреса (SPF, DKIM, DMARC) для домена, чтобы письма не попали в спам.
⚠️ Внимание: При использовании внешних сервисов учитывайте лимиты на количество писем. Например, Yandex.PDD бесплатно позволяет отправлять до 1000 писем в день, а SendPulse имеет тарифы в зависимости от объёма рассылки. Перед настройкой уточните актуальные условия на сайте сервиса.
6. Способ 5: Отправка писем из 1С:Fresh (облачная версия)
Если вы работаете в 1С:Fresh, возможности отправки писем ограничены из-за особенностей облачной инфраструктуры. Здесь нельзя напрямую настроить SMTP или подключить внешние компоненты. Однако есть обходные пути:
Вариант 1: Использовать встроенную почту
- 📌 В 1С:Fresh есть модуль «Почта и задачи», который позволяет отправлять письма через веб-интерфейс.
- 📌 Поддерживаются шаблоны и вложения, но нет автоматической рассылки.
Вариант 2: Интеграция через 1С:Connect
- 🔗 Подключите 1С:Fresh к локальной базе через 1С:Connect.
- 📧 Настройте отправку писем в локальной базе, а данные берите из облака.
Вариант 3: HTTP-запросы к внешнему сервису
- 🌐 Напишите обработку, которая отправляет данные на ваш сервер, а тот уже рассылает письма.
- 🔐 Потребуется настроить аутентификацию и HTTPS.
Пример кода для отправки данных на внешний сервер (далее сервер сам отправит письмо):
Процедура ОтправитьДанныеНаСервер(Данные)
URL = "https://ваш-сервер.ru/api/sendmail";
Запрос = Новый HTTPЗапрос(URL);
Запрос.УстановитьЗаголовок("Content-Type", "application/json");
Запрос.УстановитьТекст(СериализоватьJSON(Данные));
Ответ = Новый HTTPСоединение;
Попытка
Ответ = ОтправитьHTTPЗапрос(Запрос);
Если Ответ.КодСостояния <> 200 Тогда
Сообщить("Ошибка сервера: " + Ответ.ПолучитьТекст());
КонецЕсли;
Исключение
Сообщить("Ошибка соединения: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Важно: В 1С:Fresh нельзя использовать внешние компоненты (например, Mail.dll), поэтому все операции с почтой должны выполняться вне облака.
7. Типичные ошибки и их решения
Даже при правильной настройке отправка писем из 1С может не работать. Вот самые частые проблемы и способы их устранения:
| Симптом | Возможная причина | Решение |
|---|---|---|
| Письма уходят, но не доходят получателю | Попадание в спам из-за отсутствия SPF/DKIM | Настройте записи SPF и DKIM для вашего домена в DNS |
| Ошибка «Не удалось подключиться к серверу» | Порт заблокирован провайдером или брандмауэром | Попробуйте порт 587 вместо 465 или настройте исключение в брандмауэре |
| Ошибка аутентификации (534 или 535) | Неправильный пароль или требуется OAuth | Проверьте логин/пароль, включите доступ для приложений или используйте OAuth |
| Письма отправляются медленно | Низкая скорость SMTP-сервера или большие вложения | Оптимизируйте размер вложений или используйте асинхронную отправку |
| Вложения не прикрепляются | Неправильный путь к файлу или нет прав на чтение | Проверьте путь к файлу и права доступа к папке |
Если вы видите ошибку, которой нет в таблице, проверьте журнал регистрации 1С (Администрирование → Журнал регистрации). Часто там есть подробное описание проблемы, которое поможет в диагностике.
Как проверить, попадают ли ваши письма в спам?
Отправьте тестовое письмо на сервис Mail-Tester (https://www.mail-tester.com). Он проанализирует заголовки, содержимое и репутацию вашего IP/домена, а также даст рекомендации по улучшению доставляемости.
8. Дополнительные возможности: шаблоны, вложения, отслеживание
Отправка писем из 1С может быть не только функциональной, но и удобной. Вот несколько полезных фишек:
1. Шаблоны писем
- 📑 Создайте шаблоны для часто используемых писем (счета, акты, уведомления).
- 🔧 Используйте плейсхолдеры (например,
{Документ.Номер}) для автоматической подстановки данных.
2. Массовая рассылка
- 📊 Для рассылки по списку адресов используйте цикл:
СписокАдресов = Новый Массив;
СписокАдресов.Добавить("client1@example.com");
СписокАдресов.Добавить("client2@example.com");
Для Каждого Адрес Из СписокАдресов Цикл
Сообщение = Новый ПочтовоеСообщение;
Сообщение.Получатели.Добавить(Адрес);
Сообщение.Тема = "Акция для вас!";
Сообщение.Текст = "Уважаемый клиент, для вас специальное предложение...";
ОтправитьПочту(Сообщение);
КонецЦикла;
3. Отслеживание статуса доставки
- 📌 Если используете API (например, SendGrid), можно получать уведомления о прочтении.
- 📊 В 1С можно вести журнал отправленных писем с датой и статусом.
4. Вложения из базы
- 📎 Прикрепляйте файлы прямо из базы 1С:
Вложение = Новый ПочтовоеВложение(ПутьКФайлу, "Имя_файла.pdf");
Сообщение.Вложения.Добавить(Вложение);
Для хранения шаблонов писем можно создать справочник «Шаблоны писем» с полями:
- 📌 Название (например, «Счёт на оплату»)
- 📌 Тема (шаблон с плейсхолдерами)
- 📌 Текст (HTML или обычный текст)
- 📌 Вложения (список файлов для автоподстановки)
Использование шаблонов и автоматической подстановки данных сокращает время на подготовку писем в 5–10 раз и уменьшает количество ошибок.
FAQ: Частые вопросы по отправке писем из 1С
Можно ли отправить письмо из 1С без настройки SMTP?
Да, если использовать внешние сервисы (например, SendPulse или Mailgun) через их API. Также в некоторых конфигурациях есть встроенный помощник почтовых сообщений, который не требует ручной настройки SMTP, но использует заранее сохранённые профили.
Почему письма из 1С попадают в спам?
Основные причины:
- 🔴 Отсутствуют записи SPF и DKIM для вашего домена.
- 🔴 IP-адрес сервера, с которого отправляются письма, имеет плохую репутацию.
- 🔴 В письме есть «спамовые» слова (например, «бесплатно», «акция», «предложение»).
- 🔴 Письмо отправляется с общедоступного SMTP (например, smtp.yandex.ru), а не с корпоративного сервера.
Чтобы исправить:
- ✅ Настройте SPF и DKIM в DNS вашего домена.
- ✅ Используйте корпоративную почту вместо общедоступных SMTP.
- ✅ Проверьте текст письма на спам-триггеры (можно через Mail-Tester).
Как отправить письмо с HTML-разметкой?
Используйте свойство HTMLТекст вместо Текст:
Сообщение = Новый ПочтовоеСообщение;
Сообщение.HTMLТекст = "
|<html>
| <body>
| <h1>Привет, {Имя}</h1>
| <p>Это <strong>HTML-письмо</strong> из 1С!</p>
| </body>
|</html>
|";
Учтите, что не все почтовые клиенты корректно отображают HTML. Всегда добавляйте и обычный текстовый вариант:
Сообщение.Текст = "Привет, {Имя}! Это текстовая версия письма.";
Можно ли отправить письмо из 1С на несколько адресов?
Да, несколько способов:
- Добавить несколько получателей в одно письмо:
Сообщение.Получатели.Добавить("client1@example.com");Сообщение.Получатели.Добавить("client2@example.com");
- Отправить отдельные письма в цикле (см. раздел про массовую рассылку).
- Использовать поле «Копия (CC)» или «Скрытая копия (BCC)»:
Сообщение.Копия.Добавить("copy@example.com");Сообщение.СкрытаяКопия.Добавить("bcc@example.com");
Как проверить, отправилось ли письмо из 1С?
Способы проверки:
- 📧 Посмотреть в исходящих вашего почтового ящика (если используется SMTP).
- 📊 Проверить журнал регистрации в 1С (
Администрирование → Журнал регистрации). - 🔄 Если используете API (например, SendGrid), проверьте статус доставки в личном кабинете сервиса.
- 📌 Настроить логирование в коде:
Если ОтправитьПочту(Сообщение) ТогдаЗаписатьЛог("Письмо отправлено на " + Сообщение.Получатели[0]);
Иначе
ЗаписатьЛог("Ошибка отправки: " + ОписаниеОшибки());
КонецЕсли;