Получить штатный объект настроек и подготовить собственный SMTP-черновик

Учебные задачи

У этого типа нет конструктора. Получаем объект менеджером, заменяем все свойства своими константами и разбираем SMTP-адрес, порт, логин и отправителя без подключения и применения.

Где и как запускать

Полный серверный общий модуль отдельной пустой УчебнаяКонфигурацияСинтаксиса. Только черновик в памяти; установка настроек и отправка отсутствуют.

Подготовка

  1. Создайте отдельную пустую учебную конфигурацию с именем УчебнаяКонфигурацияСинтаксиса на 8.5.1.1343. Рабочая база и копия с действующими почтовыми секретами для этого урока не подходят.

  2. Добавьте серверный общий модуль УчебнаяАутентификацияПочты: Сервер = Истина. Вставьте полный модуль одного урока, не только тело процедуры.

  3. Своей серверной командой вызовите УчебнаяАутентификацияПочты.ВыполнитьПример(). Нужны права для чтения дополнительных настроек; код не включает привилегированный режим.

  4. У типа нет конструктора Новый. Объект получаем штатным методом менеджера в своей пустой учебной базе и сразу заменяем все 18 свойств собственными значениями.

  5. Доступ к менеджеру идёт через ДополнительныеНастройкиАутентификации. Ни один урок не вызывает УстановитьНастройкиАутентификацииЧерезЭлектроннуюПочту, не применяет черновик и не отправляет письмо.

  6. Адреса используют example.invalid, пароль и токен — явно фиктивные учебные строки. Не подставляйте сюда действующие логины, пароли, токены или почтовые адреса.

  7. В сообщения выводятся только проверки и собственные арифметические значения. Исходные значения настроек, пароли, токены и содержимое реальных писем не выводятся.

  8. Это настройки почтовой аутентификации пользователей приложения, не обычный профиль отправки документов через ИнтернетПочта.

  9. Запуск в 1С не проверен. Доставка, OAuth, TLS, права и фактическая аутентификация этим упражнением не тестируются.

Функция ПолучитьСобственныйЧерновик()
    Настройки = ДополнительныеНастройкиАутентификации.ПолучитьНастройкиАутентификацииЧерезЭлектроннуюПочту();
    Настройки.СпособАутентификацииЧерезЭлектроннуюПочту = СпособАутентификацииЧерезЭлектроннуюПочту.Нет;
    Настройки.АдресСервераSMTP = "smtp.example.invalid";
    Настройки.ПортSMTP = 465;
    Настройки.ИспользоватьSSL = Истина;
    Настройки.ПользовательSMTP = "guide-login";
    Настройки.ПарольSMTP = "GUIDE-NOT-A-PASSWORD";
    Настройки.ТокенДоступа = "";
    Настройки.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.НеИспользовать;
    Настройки.ТолькоЗащищеннаяАутентификацияSMTP = Ложь;
    Настройки.Отправитель = "guide@example.invalid";
    Настройки.ИмяОтправителя = "Учебное приложение";
    Настройки.Заголовок = "Subject: Guide training only" + Символы.ВК + Символы.ПС;
    Настройки.АлфавитКодаПодтверждения = "0123456789";
    Настройки.ДлинаКодаПодтверждения = 8;
    Настройки.СрокДействияКодаПодтверждения = 600;
    Настройки.МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения = 3;
    Настройки.ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения = 60;
    Настройки.ТекстСообщенияHTML = "<p>&UserPresentation, учебный код: <strong>&VerificationCode</strong></p><p>&ApplicationPresentation</p>";
    Возврат Настройки;
КонецФункции

Процедура ВыполнитьПример() Экспорт
    Настройки = ПолучитьСобственныйЧерновик();
    Сообщить(ТипЗнч(Настройки) = Тип("НастройкиАутентификацииЧерезЭлектроннуюПочту"));
    Сообщить(Настройки.АдресСервераSMTP = "smtp.example.invalid");
    Сообщить(Настройки.ПортSMTP = 465);
    Сообщить(Настройки.ИспользоватьSSL);
    Сообщить(Настройки.ПользовательSMTP = "guide-login");
    Сообщить(Настройки.Отправитель = "guide@example.invalid");
    Сообщить(Настройки.ИмяОтправителя = "Учебное приложение");
    Сообщить(СтрНайти(Настройки.Заголовок, "Subject: Guide training only") = 1);
    Сообщить(СтрДлина(Настройки.ПарольSMTP) > 0);
    Сообщить(Настройки.СпособАутентификацииЧерезЭлектроннуюПочту = СпособАутентификацииЧерезЭлектроннуюПочту.Нет);
КонецПроцедуры

Разбор по шагам

  1. Перед штатным получением объекта проверяем имя отдельной пустой учебной конфигурации. Проверка повторена внутри функции, чтобы её нельзя было безопасно обходить прямым вызовом.

  2. Новый НастройкиАутентификацииЧерезЭлектроннуюПочту не используется: получение идёт через метод глобального менеджера.

  3. Сразу задаём все 18 свойств собственными значениями. Ни исходные учётные данные, ни прежнее письмо не выводятся.

  4. ПользовательSMTP — логин, Отправитель — почтовый адрес. Они намеренно различаются: пустой Отправитель по справке использовал бы значение логина.

  5. Заголовок — исходный заголовок письма, не отдельное поле Тема. Используем собственную ASCII-строку Subject и перевод CRLF.

  6. Черновик не применяется: отсутствует метод установки. Способ Нет не активирует почтовую аутентификацию.

Как проверить результат

  1. Ожидаются десять Истина. Ни пароль, ни исходные настройки в сообщения не попадают.

  2. Откройте модуль в отладчике и убедитесь, что после получения выполняются все собственные присваивания, а метода установки или подключения нет.

Ожидаемый результат

Показан настоящий путь получения типа без конструктора и разделены понятия SMTP-логина и адреса отправителя.

На что обратить внимание

  1. Получение объекта не является созданием работающего SMTP-подключения.

  2. Имя учебной конфигурации — предохранитель примера, не модель прав; нужна именно отдельная пустая база.

  3. Пароль поддерживает US-ASCII по установленной справке. Собственная фиктивная строка удовлетворяет этому ограничению, но не является рабочим секретом.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.