Отправка электронных писем напрямую из 1С:Предприятие — одна из самых востребованных функций для автоматизации бизнес-процессов. С её помощью можно рассылать счета клиентам, уведомления сотрудникам, отчёты партнёрам или даже интегрировать систему с CRM. Однако настройка этой функции часто вызывает сложности: от выбора протокола (SMTP, Exchange) до решения ошибок аутентификации или блокировки писем спам-фильтрами.
В этой статье мы разберём все актуальные способы отправки писем из 1С — от стандартных механизмов платформы до внешних обработок и программного кода. Вы узнаете, как настроить Параметры почты в конфигураторе, какие настройки SMTP сервера указать для Mail.ru, Yandex или Gmail, а также как обойти типичные ошибки вроде "Не удалось подключиться к серверу" или "Ошибка аутентификации 535". Особое внимание уделим безопасности: шифрованию SSL/TLS и работе с паролями приложений.
Материал будет полезен и бухгалтерам, и программистам 1С, и администраторам баз. Если вы никогда не настраивали почту в 1С — начните с раздела про стандартные обработки. Если нужны гибкие решения с кодом — переходите к программной отправке. А если письма не доходят — изучите блок по ошибкам.
Способ 1: Стандартная отправка через «Помощник отправки почты»
Самый простой метод — использовать встроенную обработку ПомощникОтправкиПочты.epf, которая есть в большинстве типовых конфигураций (1С:Бухгалтерия, 1С:УТ, 1С:ЗУП). Она не требует программирования и подходит для разовых рассылок документов (счетов, актов, накладных).
Чтобы открыть помощник:
- Перейдите в меню
Файл → Открыть. - Выберите путь к файлу обработки (обычно он лежит в каталоге шаблонов 1С, например,
C:\Program Files\1cv8\templates\Релизы\ПомощникОтправкиПочты.epf). - Нажмите
Открытьи подтвердите запуск.
Далее алгоритм такой:
- 📄 Выбор документов: Отметьте галочками счета, акты или другие объекты, которые нужно отправить. Можно фильтровать по дате, контрагенту или типу документа.
- 📧 Настройка почты: Укажите адрес отправителя (должен совпадать с почтой в настройках SMTP!), тему письма и текст сообщения. Здесь же можно вставить шаблон с переменными (например,
%НомерДокумента%). - 🔗 Прикрепление файлов: По умолчанию помощник прикрепляет PDF-версии документов, но можно добавить и другие файлы (Excel, Word).
- ⚙️ Параметры SMTP: Введите данные сервера (хост, порт, логин, пароль). Для Yandex это будет
smtp.yandex.ru:465с шифрованием SSL.
После нажатия Отправить помощник сформирует письма и попробует их доставить. Если что-то пойдёт не так — вы увидите лог ошибок с кодом (например, 550 означает, что адрес получателя не существует).
Убедитесь, что почтовый ящик отправителя существует и не заблокирован|
Проверьте, что порт SMTP открыт в антивирусе/брандмауэре|
Используйте пароль приложения (для Gmail/Yandex), а не основной пароль от почты|
Тестово отправьте письмо самому себе перед массовой рассылкой-->
⚠️ Внимание: Если вы используете Gmail или Yandex, включите опцию "Разрешить менее безопасные приложения" в настройках аккаунта или создайте пароль приложения. Без этого 1С не сможет авторизоваться.
Способ 2: Настройка SMTP в конфигураторе (для постоянной работы)
Если письма отправляются регулярно (например, ежедневные отчёты), лучше один раз настроить параметры SMTP прямо в конфигурации. Это избавит от необходимости вводить данные каждый раз.
Инструкция для 1С:Предприятие 8.3:
- Откройте конфигуратор в режиме
Администратор. - Перейдите в
Администрирование → Настройки программы → Почтовые сообщения(путь может отличаться в зависимости от конфигурации). - Нажмите
Создатьи заполните поля:- Имя: Произвольное название (например, "Почта для счетов").
- SMTP-сервер: Адрес сервера (например,
smtp.mail.ruдля Mail.ru). - Порт: Обычно
465(SSL) или587(TLS). - Имя пользователя: Полный email (например,
ivanov@company.ru). - Пароль: Пароль от почты или пароль приложения (для Gmail/Yandex).
- Шифрование: Выберите
SSLилиTLSв зависимости от порта.
Тест.Теперь эти параметры будут доступны во всех обработках, где требуется отправка почты. Например, в 1С:Бухгалтерии при проведении счёта появится опция Отправить по email с уже заполненными данными.
| Почтовый сервис | SMTP-сервер | Порт (SSL) | Порт (TLS) | Требуется пароль приложения |
|---|---|---|---|---|
| Yandex | smtp.yandex.ru |
465 | 587 | Да |
| Mail.ru | smtp.mail.ru |
465 | 2525 | Нет |
| Gmail | smtp.gmail.com |
465 | 587 | Да |
| Outlook/Hotmail | smtp.office365.com |
587 | — | Да |
⚠️ Внимание: Настройки портов и протоколов могут меняться со временем. Например, Yandex с 2023 года требует обязательного использования SSL/TLS даже для порта 587. Перед настройкой уточните актуальные параметры в справке вашего почтового сервиса.
Yandex|
Mail.ru|
Gmail|
Корпоративный Exchange|
Другой-->
Способ 3: Программная отправка писем (для разработчиков)
Если стандартные методы не подходят (например, нужно отправлять письма по триггеру или с динамическим содержимым), придётся писать код на встроенном языке 1С. Ниже — универсальный пример для отправки письма с вложением через SMTP.
Код для обработки (можно вставить в модуль объекта или внешнюю обработку):
Процедура ОтправитьПисьмоНаПочту(АдресПолучателя, Тема, ТекстПисьма, ПутьКФайлуВложения = "")
// Создаём объект почтового сообщения
ПочтовоеСообщение = Новый ПочтовоеСообщение;
ПочтовоеСообщение.Отправитель = "your_email@domain.ru"; // Должен совпадать с SMTP-логином!
ПочтовоеСообщение.Получатели.Добавить(АдресПолучателя);
ПочтовоеСообщение.Тема = Тема;
ПочтовоеСообщение.Текст = ТекстПисьма;
// Добавляем вложение, если указан путь
Если ПутьКФайлуВложения <> "" Тогда
Вложение = Новый ПочтовоеВложение(ПутьКФайлуВложения, Истина);
ПочтовоеСообщение.Вложения.Добавить(Вложение);
КонецЕсли;
// Настраиваем SMTP-клиент
SMTPКлиент = Новый SMTPСоединение(
"smtp.yandex.ru", // Сервер
465, // Порт
"your_email@domain.ru", // Логин
"ваш_пароль_или_пароль_приложения", // Пароль
Истина, // Использовать SSL
30 // Таймаут (сек)
);
// Отправляем письмо
Попытка
SMTPКлиент.Отправить(ПочтовоеСообщение);
Сообщить("Письмо успешно отправлено на " + АдресПолучателя);
Исключение
Сообщить("Ошибка отправки: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Чтобы вызвать эту процедуру, используйте:
ОтправитьПисьмоНаПочту(
"client@company.ru",
"Счёт №123 от 01.06.2026",
"Здравствуйте! Прилагаем счёт на оплату. С уважением, ООО Ромашка.",
"C:\Счета\Счет_123.pdf"
);
Этот код работает в 1С 8.3 и выше. Для 1С 8.2 может потребоваться доработка (например, вместо SMTPСоединение используется ИнтернетПочта).
Если письма попадают в спам, добавьте в код заголовок X-Priority: 1 и проверьте, что домен отправителя имеет SPF-запись. Это повысит доставляемость.
Способ 4: Интеграция с Microsoft Exchange (для корпоративных пользователей)
Если ваша компания использует Microsoft Exchange Server или Office 365, можно настроить отправку писем через EWS (Exchange Web Services). Это более надёжный метод, чем SMTP, так как поддерживает авторизацию по OAuth 2.0 и не требует хранения паролей в 1С.
Для настройки:
- Установите расширение для работы с Exchange (например, 1C:ExchangeConnector или бесплатную обработку EWSFor1C).
- В конфигураторе добавьте новые реквизиты для хранения:
- URL сервера EWS (обычно
https://outlook.office365.com/EWS/Exchange.asmx). - Логин и пароль (или токен OAuth).
- URL сервера EWS (обычно
EWS = Новый HTTPСоединение("https://outlook.office365.com/EWS/Exchange.asmx");
EWS.УстановитьЗаголовок("Authorization", "Bearer " + ПолучитьOAuthТокен());
// Формируем XML-запрос для создания письма
ТекстЗапроса = ?
"
" + ТемаПисьма + "
" + ТекстПисьма + "
" + АдресПолучателя + "
";
Ответ = EWS.ОтправитьДляXML(ТекстЗапроса);
Преимущества этого метода:
- 🔒 Безопасность: Нет необходимости хранить пароли в базе 1С.
- 📊 Логирование: Все письма сохраняются в папке "Отправленные" на сервере.
- 🔄 Синхронизация: Можно не только отправлять, но и читать входящие письма.
⚠️ Внимание: Для Office 365 требуется зарегистрировать приложение в Azure AD и получитьclient_idиclient_secret. Без этого OAuth-авторизация не будет работать.
Типичные ошибки и их решения
Даже при правильной настройке SMTP письма могут не отправляться. Рассмотрим самые частые ошибки и способы их исправления.
| Код ошибки | Описание | Решение |
|---|---|---|
535 |
Ошибка аутентификации (неверный логин/пароль). |
|
550 |
Адрес получателя не существует или заблокирован. |
|
421 |
Сервер временно недоступен. |
|
554 |
Письмо заблокировано как спам. |
|
Если ошибка не указана в таблице, включите лог отправки в настройках SMTP или используйте внешние инструменты вроде Mailtrap для тестирования.
Как прочитать полный лог ошибки в 1С?
В конфигураторе перейдите в Сервис → Журнал регистрации. Отфильтруйте записи по типу "Почта" или "Исключение". В поле "Подробно" будет полный текст ошибки, включая ответ SMTP-сервера. Если журнала нет — добавьте в код обработку исключений с выводом в сообщение:
Исключение
ЗаписатьЛог(ОписаниеОшибки(), УровеньЖурналирования.Ошибка);
Сообщить("Ошибка: " + ОписаниеОшибки());
КонецПопытки;
Безопасность: как не слить пароли и не попасть в спам
Отправка писем из 1С часто становится уязвимым местом в безопасности компании. Вот ключевые правила, которые помогут избежать проблем:
- 🔐 Не храните пароли в открытом виде: Используйте
ХранилищеПараметровили 1С:Конвертацию данных для шифрования паролей. Пример кода для шифрования:ЗашифрованныйПароль = СтрШифровать("ваш_пароль", "секретный_ключ");ХранилищеПараметров.УстановитьПараметр("SMTP_Пароль", ЗашифрованныйПароль);
- 📛 Используйте корпоративный домен: Письма с адресов вроде
company@mail.ruчаще попадают в спам, чем сinfo@yourcompany.ru. - 🛡️ Настройте SPF, DKIM, DMARC: Эти записи в DNS подтверждают, что письмо отправлено с разрешённого сервера. Без них письма могут блокироваться.
- 📊 Логируйте отправку: Ведите журнал отправленных писем (дату, получателя, статус) для отчётности и разбора инцидентов.
Критическая информация: С 2026 года Яндекс и Mail.ru начали блокировать письма с IP-адресов, не имеющих обратной DNS-записи (PTR). Если ваш сервер 1С находится на выделенном IP, убедитесь, что у него настроен PTR, иначе письма не будут доходить.
Для проверки безопасности почты можно использовать сервисы:
- MXToolbox — проверка SPF, DKIM, чёрных списков.
- Mail-Tester — оценка спам-скора письма.
Альтернативные способы отправки писем из 1С
Если SMTP не подходит (например, из-за блокировок провайдера), рассмотрите альтернативные методы:
- 📧 API почтовых сервисов: Отправка через SendGrid, Mailgun или Яндекс Почту для домена. Эти сервисы предоставляют HTTP-API, что упрощает интеграцию.
Пример кода для SendGrid:
HTTP = Новый HTTPСоединение("https://api.sendgrid.com/v3/mail/send");HTTP.УстановитьЗаголовок("Authorization", "Bearer YOUR_API_KEY");
HTTP.УстановитьЗаголовок("Content-Type", "application/json");
ТекстЗапроса = ?
{
"personalizations": [{
"to": [{"email": "client@domain.ru"}]
}],
"from": {"email": "noreply@yourcompany.ru"},
"subject": "Тестовое письмо",
"content": [{
"type": "text/plain",
"value": "Привет из 1С!"
}]
};
Ответ = HTTP.ОтправитьСтроку(ТекстЗапроса, "POST");
- 🖥️ Локальный почтовый клиент: Если на компьютере установлен Outlook или Thunderbird, можно отправлять письма через них с помощью
Shellили COM-объектов. Минус — зависимость от установленного ПО. - 🔄 Обмен через файлы: Генерируйте письма в формате
.emlи сохраняйте в сетевую папку, откуда их заберёт внешний скрипт (на Python или PowerShell).
Выбор метода зависит от инфраструктуры компании. Для облачных решений (1С:Fresh) лучше использовать API, для локальных баз — SMTP или COM-объекты.
Если вам нужно отправлять более 1000 писем в день, избегайте SMTP — используйте специализированные сервисы вроде SendGrid или Amazon SES. Они оптимизированы для массовых рассылок и имеют высокую доставляемость.
FAQ: Частые вопросы по отправке писем из 1С
Можно ли отправлять письма из 1С без указания SMTP-сервера?
Да, если использовать COM-объекты (например, Outlook.Application) или API внешних сервисов (SendGrid, Mailgun). В этом случае 1С делегирует отправку другой программе или облачному сервису. Однако для этого на компьютере должен быть установлен Outlook или настроен доступ к API.
Пример кода для Outlook:
Outlook = Новый COMОбъект("Outlook.Application");
Письмо = Outlook.CreateItem(0); // 0 - это MailItem
Письмо.To = "client@domain.ru";
Письмо.Subject = "Тест";
Письмо.Body = "Привет!";
Письмо.Send();
Почему письма из 1С попадают в спам?
Основные причины:
- Отсутствие SPF/DKIM записей для домена отправителя.
- Использование публичных почтовых сервисов (mail.ru, gmail.com) вместо корпоративного домена.
- Спам-триггеры в тексте письма (слова "бесплатно", "акция", много ссылок).
- IP-адрес сервера 1С находится в чёрных списках (проверьте на MXToolbox).
Решение: настройте SPF/DKIM, используйте корпоративную почту и тестируйте письма через Mail-Tester.
Как отправить письмо с вложением в формате PDF?
В стандартном помощнике отправки вложение формируется автоматически при выборе документа (счёт, акт). Если нужно прикрепить произвольный файл, используйте:
- В помощнике отправки: нажмите
Добавить вложениеи выберите файл. - В коде: используйте объект
ПочтовоеВложение:Вложение = Новый ПочтовоеВложение("C:\Отчеты\отчет.pdf", Истина);ПочтовоеСообщение.Вложения.Добавить(Вложение);
Для генерации PDF из 1С можно использовать Макет.Вывести() с параметром ТипФайлаPDF.
Как отправить письмо нескольким получателям?
В стандартном помощнике можно указать несколько адресов через запятую или точку с запятой. В коде используйте метод Добавить() для коллекции получателей:
ПочтовоеСообщение.Получатели.Добавить("client1@domain.ru");
ПочтовоеСообщение.Получатели.Добавить("client2@domain.ru");
ПочтовоеСообщение.Копия.Добавить("manager@domain.ru"); // Для поля CC
Ограничение: некоторые SMTP-серверы блокируют массовые рассылки (более 30–50 получателей в одном письме). В этом случае отправляйте письма по одному.
Можно ли отправить письмо с HTML-разметкой?
Да, для этого в объекте ПочтовоеСообщение установите свойство ТипТекста = ТипТекстаПочтовогоСообщения.HTML:
ПочтовоеСообщение.ТипТекста = ТипТекстаПочтовогоСообщения.HTML;
ПочтовоеСообщение.Текст = "
|
|
|
|
Это HTML-письмо из 1С.
|
|
|";
Внимание: некоторые почтовые клиенты (например, Outlook) могут блокировать стили и скрипты в письмах.