Добрый день, отправляю письмо в формате HTML, приходит пустое письмо с темой, подскажите пожалуйста в чем ошибка?
Функция ВыполнитьРассылку(ДатаРассылки) Экспорт
СписокПолучивших = "";
Если ЭтотОбъект.Документы.Количество() = 0 Тогда
Возврат СписокПолучивших;
КонецЕсли;
МассивМенеджеров = Новый Массив();
Для каждого Стр Из ЭтотОбъект.Документы Цикл
Если Стр.ОК = Истина Тогда
МассивМенеджеров.Добавить(Стр.Сотрудник);
КонецЕсли;
КонецЦикла;
// Избавляемся от возможных дублей:
МассивМенеджеров = МассивБезДублей(МассивМенеджеров);
ЗаголовокПрограммы = "";
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗС.Значение КАК Значение
|ИЗ
| Константа.ЗаголовокСистемы КАК ЗС";
Рез = Запрос.Выполнить();
Если НЕ Рез.Пустой() Тогда
Выборка = Рез.Выбрать();
Выборка.Следующий();
ЗаголовокПрограммы = Выборка.Значение;
КонецЕсли;
Если ЗаголовокПрограммы <> "" Тогда
ЗаголовокПрограммы = "Заголовок" + ЗаголовокПрограммы;
Иначе
ЗаголовокПрограммы = "Заголовок";
КонецЕсли;
Для каждого Менеджер Из МассивМенеджеров Цикл
Если Менеджер <> Справочники.Пользователи.ПустаяСсылка() Тогда
ТекстСписка = "";
ТекстПисьма = "";
Адрес = "";
Счетчик = 1;
Для каждого СтрТЧ Из ЭтотОбъект.Документы Цикл
Если СтрТЧ.ОК И СтрТЧ.Сотрудник = Менеджер Тогда
СчетчикСтрока = "" + Строка(Счетчик) + ". ";
ТекстСписка = ТекстСписка + СчетчикСтрока + "" + Символы.ПС;
Адрес = СтрТЧ.АдресСотрудника;
Счетчик = Счетчик + 1;
КонецЕсли;
КонецЦикла;
ТекстПисьма = ТекстПисьмаДляСотрудникаВФорматеHTML(Менеджер, ДатаРассылки, ТекстСписка, ЗаголовокПрограммы);
РезультатОтправки = СозданиеИОтправкаПисьма(Адрес, ТекстПисьма);
Если РезультатОтправки = Истина Тогда
СписокПолучивших = СписокПолучивших + Менеджер + Символы.ПС;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат СписокПолучивших;
КонецФункции
ПоказатьФункция ТекстПисьмаДляСотрудникаВФорматеHTML(Менеджер, ДатаРассылки, ТекстСписка, ЗаголовокПрограммы)
ТекстПисьма =
"<HT ML>
|<ST YLE TYPE = ""text/css"">
|#s1 {color: #000000; font-family: Arial; font-size: 14px}
|</STYLE>
|<BODY ID=s1>
|Добрый день, " + Менеджер + ".
|
|На " + Формат(ДатаРассылки, "ДФ=dd.MM.yyyy") + " г." + " в информационной базе: " + ЗаголовокПрограммы + "
|у следующих сотрудников будет отпуск" + "
|
|" + ТекстСписка + "
|Автоматическая электронная рассылка " + "
|(отвечать на это письмо не требуется)
|</BODY>
|</HTML>";
Возврат ТекстПисьма;
КонецФункции
ПоказатьПо теме из базы знаний
- Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом
- [Расширение] Доработка рассылки отчетов, отчет в теле письма
- Автоматическая обработка заказов, получаемых по электронной почте для 1С: Бухгалтерия предприятия 3.0
- Отправка и получение почтовых сообщений
- Деловая переписка. Как выедать мозг чайной ложечкой через письма и получать нужный результат
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Вот в этой функции у меня это прописано
Функция СозданиеИОтправкаПисьма(Адрес, ТекстПисьма)
Результат = Неопределено;
// Даём полные права на момент выполнения куска кода
// (по умолчанию, до конца функции):
УстановитьПривилегированныйРежим(Истина);
// Воспользуемся получением системной учетной записи, как в типовой функции:
// РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();
УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты;
Профиль = Новый ИнтернетПочтовыйПрофиль;
//Профиль = РаботаСПочтовымиСообщениямиСлужебный.ИнтернетПочтовыйПрофиль(УчетнаяЗапись);
Профиль = ИнтернетПочтовыйПрофиль(УчетнаяЗапись);
ИнтернетПочта = Новый ИнтернетПочта;
// ---------------------------------------------------------
// Непосредственное создание почтового сообщения:
// ---------------------------------------------------------
Письмо = Новый ИнтернетПочтовоеСообщение;
Текст = Письмо.Тексты.Добавить(ТекстПисьма);
Текст.ТипТекста = ТипТекстаПочтовогоСообщения.HTML;
Письмо.Тема = "Изменение статуса заявки";
Письмо.Отправитель = УчетнаяЗапись.АдресЭлектроннойПочты;
Письмо.ИмяОтправителя = "1С: Предприятие";
Письмо.Получатели.Добавить(Адрес);
// ---------------------------------------------------------
// Отправка письма:
// ---------------------------------------------------------
ТекстСообщения = "";
Попытка
ИнтернетПочта.Подключиться(Профиль);
//ТекстСообщения = "Подключенено";
ИнтернетПочта.Послать(Письмо);
//ТекстСообщения = "Уведомление отправлено";
ИнтернетПочта.Отключиться();
Результат = Истина;
Исключение
ТекстСообщения = "Не удалось подключиться к почтовому серверу !!!";
Сообщить(ОписаниеОшибки());
Результат = Ложь;
КонецПопытки;
Если ТекстСообщения <> "" Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ТекстСообщения;
Сообщение.Поле = "";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
Возврат Результат;
КонецФункции
Показать
(6)Всё равно пустое сообщение отправляется пишу так:
Функция СозданиеИОтправкаПисьма(Адрес, ТекстПисьма)
Результат = Неопределено;
// Даём полные права на момент выполнения куска кода
// (по умолчанию, до конца функции):
УстановитьПривилегированныйРежим(Истина);
// Воспользуемся получением системной учетной записи, как в типовой функции:
// РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();
УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты;
Профиль = Новый ИнтернетПочтовыйПрофиль;
//Профиль = РаботаСПочтовымиСообщениямиСлужебный.ИнтернетПочтовыйПрофиль(УчетнаяЗапись);
Профиль = ИнтернетПочтовыйПрофиль(УчетнаяЗапись);
ИнтернетПочта = Новый ИнтернетПочта;
// ---------------------------------------------------------
// Непосредственное создание почтового сообщения:
// ---------------------------------------------------------
Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.HTML);
Письмо.Тема = "Заявка клиента";
Письмо.Отправитель = УчетнаяЗапись.АдресЭлектроннойПочты;
Письмо.ИмяОтправителя = "1С: Предприятие";
Письмо.Получатели.Добавить(Адрес);
// ---------------------------------------------------------
// Отправка письма:
// ---------------------------------------------------------
ТекстСообщения = "";
Попытка
ИнтернетПочта.Подключиться(Профиль);
//ТекстСообщения = "Подключенено";
ИнтернетПочта.Послать(Письмо);
//ТекстСообщения = "Уведомление отправлено";
ИнтернетПочта.Отключиться();
Результат = Истина;
Исключение
ТекстСообщения = "Не удалось подключиться к почтовому серверу !!!";
Сообщить(ОписаниеОшибки());
Результат = Ложь;
КонецПопытки;
Если ТекстСообщения <> "" Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ТекстСообщения;
Сообщение.Поле = "";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
Возврат Результат;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот