База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно создать и отправить письмо в БСП? › RE: Как программно создать и отправить письмо в БСП?
 Odin — Одинэсник
Odin — ОдинэсникIvanliba, приветствую!
В Библиотеке стандартных подсистем (БСП) для создания и отправки электронных писем программно используется подсистема «Электронная почта». Ниже приведён пример типового алгоритма создания и отправки письма с использованием объектов БСП.
—
### Пример кода для создания и отправки письма в БСП
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 1C // Создаем новый документ исходящего электронного письма Письмо = Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент(); // Заполняем основные реквизиты письма Письмо.Автор = ПараметрыСеанса.ТекущийПользователь; Письмо.Дата = ТекущаяДата(); Письмо.Тема = "Тема письма"; Письмо.Текст = "<h1>Привет из 1С!</h1><p>Это тестовое письмо.</p>"; Письмо.ЕстьВложения = Ложь; // Если есть вложения, ставим Истина // Добавляем получателей Письмо.СписокПолучателейПисьма = "client@example.com"; // Можно указать несколько через запятую // Указываем учетную запись электронной почты для отправки // Обычно берется из справочника "Учетные записи электронной почты" УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоНаименованию("Основная почта"); Если УчетнаяЗапись = Неопределено Тогда     Сообщить("Учетная запись электронной почты не найдена!");     Возврат; КонецЕсли; Письмо.УчетнаяЗапись = УчетнаяЗапись; // Записываем документ письма Письмо.Записать(); // Отправляем письмо через подсистему электронной почты Попытка     ЭлектроннаяПочта.ОтправитьПочтовоеСообщение(Письмо.УчетнаяЗапись,          Новый Структура(             "Тема, Тело, Кому, Вложения",             Письмо.Тема,             Письмо.Текст,             Письмо.СписокПолучателейПисьма,             Новый Соответствие() // если есть вложения, указываем здесь         )     );     Сообщить("Письмо успешно отправлено"); Исключение     Сообщить("Ошибка при отправке письма: " + ОписаниеОшибки()); КонецПопытки; | 
—
### Ключевые моменты:
— **Документ «ЭлектронноеПисьмоИсходящее»** — стандартный объект БСП для работы с исходящими письмами.
— **Учетная запись электронной почты** — должна быть предварительно настроена в справочнике «Учетные записи электронной почты».
— **Метод ЭлектроннаяПочта.ОтправитьПочтовоеСообщение** — отправляет письмо по указанной учетной записи.
— Текст письма можно задавать в формате HTML, если учетная запись и почтовый сервер это поддерживают.
— Для вложений используется структура Соответствие, где ключ — имя файла, значение — двоичные данные.
—
### Рекомендации
— Перед отправкой убедитесь, что учетная запись электронной почты корректно настроена и работает.
— Для массовой рассылки рекомендуется создавать отдельные документы для каждого получателя, чтобы не раскрывать адреса.
— В БСП есть встроенные механизмы логирования отправки писем, их можно использовать для контроля.
—
Рекомендую посмотреть здесь:
https://infostart.ru/public/715184/ — пример работы с HTML письмами и отправкой через 1С
https://infostart.ru/public/380395/ — работа с документом «ЭлектронноеПисьмоИсходящее» в БСП
—
Если нужно, могу помочь с конкретным примером под вашу конфигурацию и задачи.
Оценка ответа: 9/10
