Налаштування шаблону повідомлення з кодом для підтвердження каналу зв’язку Email

1. Загальний опис

Для налаштування функції відправлення поштових повідомлень користувачам на електронну пошту, користувач має спочатку підтвердити, тобто авторизувати канал зв’язку email. Таким чином, користувач верифікує обмін даними (email-повідомленнями).

Підтвердження каналу зв’язку використовує механізм верифікації даних за допомогою псевдовипадкового 6-значного OTP-коду, що генерується платформою і надходить до сервісу електронної пошти за вказаною адресою користувача.

Власне відправлення OTP-коду — це вже повідомлення, що містить OTP-код. І відправлення такого повідомлення вимагає попередньо змодельованого шаблону у структурі регламенту реєстру.

2. Моделювання регламенту

Базовий репозиторій розгортання регламенту registry-regulations розширено директорією channel-confirmation, яка містить шаблон поштового повідомлення із плейсхолдером[1] для OTP-коду[2], що генеруватиметься системою та надсилатиметься громадянам за вказаною адресою електронної пошти.

Шаблон повідомлення необхідно створити у розмітці HTML за допомогою технології шаблонізації Apache FreeMarker (розширення файлів .ftlh та .ftl для HTML та текстових документів відповідно).

Детальну інформацію щодо Apache FreeMarker можливо отримати за посиланням:

Типовий шаблон поштового повідомлення має наступну структуру:

email-notification-structure
  • channel-confirmation — директорія з ресурсами шаблону;

  • channel-confirmation/css/style.css — єдиний CSS-файл стилів, які використовуються в HTML-документі (Приклад: <link rel="stylesheet" href="css/style.css">);

  • channel-confirmation/image/*.* — перелік файлів зображень, які використовуються в HTML-документі (Приклад: <img src="images/image.jpg">);

  • channel-confirmation/notification.ftlh — HTML-документ шаблону для подальшої генерації тіла повідомлення з плейсхолдером для OTP-коду.

    HTML-документ шаблону для подальшої генерації тіла повідомлення з плейсхолдером для OTP-коду
    <!DOCTYPE html>
    <html lang="uk">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <div class="header">
            <div class="logo-wrap">
                <img src="image/trident.jpg" alt="Diia" class="logo">
            </div>
            <div class="platform-name">Платформа<br>реєстрів</div>
        </div>
        <div class="main">
            Код підтвердження: ${verificationCode}
        </div>
        <div class="footer">
            <br>
            Адреса чи службова інформація
        </div>
    </body>
    </html>
  • channel-confirmation/notification.yml — Конфігураційний файл з метаданими для відправлення поштового повідомлення з OTP-кодом.

    Приклад 1. Конфігураційний файл з метаданими для відправлення поштового повідомлення з OTP-кодом
    title: "Підтвердження електронної пошти"

Згенерований 6-значний псевдовипадковий код (наприклад, 345870) автоматично надсилатиметься користувачеві на Email для перевірки та підтвердження контактних даних при внесенні, або зміні адреси поштової скриньки у профілі Кабінету отримувача послуг.

Після оновлення наявного реєстру, для правильної роботи функціональності, адміністратор регламенту має в ручному режимі додати до каталогу notifications/email папку channel-confirmation із відповідними файлами шаблону підтвердження, як показано на прикладах вище.

1. Плейсхолдер (англ. — placeholder) — заповнювач тексту.
2. Одноразовий пароль (англ. — one time password, OTP) — це пароль, який є дійсним тільки для одного сеансу автентифікації. Його дія також може бути обмежена певним проміжком часу. Перевага такого пароля перед статичним полягає у тому, що його неможливо використовувати повторно.