Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 мар 2025, 17:57

Code: LIOKO. Chapter 2

Автор Абдулай Мухамедов, 16 фев 2025, 21:49

0 Пользователей и 1 гость просматривают эту тему.

Абдулай Мухамедов

 :befhbt:
Функция ОтправитьПисьмо(
ПользовательSMTP,
ПарольSMTP,
ПортSMTP,
АдресСервераSMTP,
SSLSMTP,
EmailПолучателя,
ИмяПолучателя,
ТекстСообщения,
ЗаголовокСообщения,
МассивФайловыхПутей)

//ПОЧТОВЫЙ ПРОФИЛЬ

Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.ПользовательSMTP = ПользовательSMTP;
Профиль.Пользователь = ПользовательSMTP;
Профиль.ПарольSMTP = ПарольSMTP;
Профиль.Пароль = ПарольSMTP;
Профиль.АдресСервераSMTP = АдресСервераSMTP;
Профиль.ПортSMTP = ПортSMTP;
Профиль.ИспользоватьSSLSMTP = SSLSMTP;
Профиль.Таймаут = 300;
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;

   
//ПОЧТОВОЕ СООБЩЕНИЕ

Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Отправитель = ПользовательSMTP;
Сообщение.Тема = ЗаголовокСообщения;
Сообщение.Тексты.Добавить(ТекстСообщения, ТипТекстаПочтовогоСообщения.HTML);
Сообщение.Организация = "The company";
Адрес = Сообщение.Получатели.Добавить(EmailПолучателя);
Адрес.ОтображаемоеИмя = ИмяПолучателя;

Для каждого ПутьКФайлу Из МассивФайловыхПутей Цикл
Сообщение.Вложения.Добавить(ПутьКФайлу);
КонецЦикла;

// ПОЧТОВЫЙ СЕРВЕР

Почта = Новый ИнтернетПочта();

//Подключение к серверу
Попытка
Почта.Подключиться(Профиль);
Исключение
Сообщить("Ошибка при подключении к серверу: " + ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;

//Отправка письма
Попытка
Почта.Послать(Сообщение);
Исключение
Почта.Отключиться();
Сообщить("Ошибка при отправке письма: " + ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;

Почта.Отключиться();
Возврат Истина;

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

Функция ПолучитьПисьма(
ПользовательPOP,
ПарольPOP,
АдресСервераPOP,
ПортPOP,
SLLPOP)

//ПОЧТОВЫЙ ПРОФИЛЬ

Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.Пользователь = ПользовательPOP;
Профиль.Пароль = ПарольPOP;
Профиль.АдресСервераPOP3 = АдресСервераPOP;
Профиль.ПортPOP3 = ПортPOP;
Профиль.ИспользоватьSSLPOP3 = SLLPOP;
Профиль.Таймаут = 300;
ПРофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;
МассивПисем = Новый массив();

//ПОЛУЧЕНИЕ ПИСЕМ

Попытка
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
МассивПисем = Почта.Выбрать(Ложь);
Исключение
Сообщить("Ошибка получения почты " + ОписаниеОшибки());
КонецПопытки;

Возврат МассивПисем;

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


Функция ПолучитьПисьмаСУчетомКофигурации() Экспорт
Возврат ПолучитьПисьма(
Константы.ПочтаPOP.Получить(),
Константы.ПарольPOP.Получить(),
Константы.АдресСервераPOP.Получить(),
Константы.ПортPOP.Получить(),
Константы.SLLPOP.Получить());
КонецФункции                                           

Функция ОтправитьПисьмоСУчетомКофигурации(
EmailПолучателя,
ИмяПолучателя,
ТекстСообщения,
ЗаголовокСообщения,
МассивФайловыхПутей) Экспорт

Возврат ОтправитьПисьмо(
Константы.ПочтаSMTP.Получить(),
Константы.ПарольSMTP.Получить(),
Константы.ПортSMTP.Получить(),
Константы.АдресСервераSMTP.Получить(),
Константы.SSLSMTP.Получить(),
EmailПолучателя,
ИмяПолучателя,
ТекстСообщения,
ЗаголовокСообщения,
МассивФайловыхПутей);
КонецФункции

Абдулай Мухамедов

Этот код наглядно показывает best practices по работе с электронными письмами в 1С: Предприятие.  :befhbt:

alexandr_ll

Абдулай Мухамедов, Для каких конфигураций подходит? В типовых нет таких констант.

Абдулай Мухамедов

alexandr_ll, Ни что не мешает вам создать их :)

Пользователь - Строка (xxxxxx@xxxx.xxx)
Пароль - Строка (xxxx xxxx xxxx xxxx)
Порт - Число (xxx)
АдресСервера - Строка (xxx.xxxx.xxx)
SSL - Булево

Вот так :befhbt:

Абдулай Мухамедов

alexandr_ll, Плюсом подчеркну, что функции с "СУчетомКонфигурации" это просто расширения, для более скорой работы.

Теги: 1c 

Похожие темы (1)

Рейтинг@Mail.ru

Поиск