Разделить фиктивный OAuth-токен и пароль SMTP в черновиках

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

Настройки почтовой аутентификации используют OAuth для 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>";
    Возврат Настройки;
КонецФункции

Процедура ВыполнитьПример() Экспорт
    Настройки = ПолучитьСобственныйЧерновик();
    Настройки.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.Использовать;
    Настройки.ТокенДоступа = "GUIDE-NOT-A-REAL-TOKEN";
    Настройки.ПарольSMTP = "";
    Сообщить(Настройки.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.Использовать);
    Сообщить(СтрДлина(Настройки.ТокенДоступа) > 0);
    Сообщить(Настройки.ПарольSMTP = "");
    Настройки.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.НеИспользовать;
    Настройки.ТокенДоступа = "";
    Настройки.ПарольSMTP = "GUIDE-NOT-A-PASSWORD";
    Сообщить(Настройки.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.НеИспользовать);
    Сообщить(Настройки.ТокенДоступа = "");
    Сообщить(СтрДлина(Настройки.ПарольSMTP) > 0);
КонецПроцедуры

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

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

  2. Токен и пароль — разные свойства. В первом состоянии пароль пуст, а токен явно фиктивен.

  3. Во втором состоянии отключаем использование токена, очищаем его и задаём ASCII-пароль учебного образца.

  4. Тип относится к SMTP-почтовой аутентификации приложения. Не переносим сюда объяснение про IMAP из другого ИнтернетПочтовыйПрофиль.

  5. Проверяем только режим и наличие/отсутствие своих строк. Непустой токен не доказывает его подпись, срок, область прав или возможность доставки.

  6. Ни одно состояние не устанавливается менеджером, секреты и сетевые операции не используются.

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

  1. Ожидаются шесть Истина: три для фиктивного токенного состояния и три для фиктивного парольного.

  2. В сообщения не должны попадать сами значения токена и пароля. Подключение с ними не запускайте: они не являются рабочими учётными данными.

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

Выбор режима разобран отдельно от реального получения, проверки и применения секретов.

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

  1. Не вставляйте в учебный код токен из браузера, своей почты или рабочего приложения.

  2. Режим Авто не означает проверку корректности произвольной непустой строки.

  3. Сравнение свойств не доказывает успешный OAuth или правильные требования почтового сервера.

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

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

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

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

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