Как использовать встроенные шаблоны писем liferay программно?

В моем приложении LifeRay я добавляю пользователей приложения, используя Expando программно и не используя Liferay по умолчанию Регистрация пользователей. Теперь я хочу отправить учетные данные пользователю на его адрес электронной почты, используя шаблоны liferay по умолчанию, доступные в Панели управления - Настройка портала - Шаблоны электронной почты.

Как я могу активировать электронную почту, используя этот встроенный шаблон liferay? Любая подсказка приветствуется.

1 ответ

Liferay использует файлы шаблонов (.tmpl) для управления шаблонами электронной почты. Согласно Liferay Source, для создания Пользователя данный фрагмент используется для отправки почты пользователям.

String body = PrefsPropsUtil.getContent(
            user.getCompanyId(), PropsKeys.ADMIN_EMAIL_USER_ADDED_BODY);

SubscriptionSender subscriptionSender = new SubscriptionSender();

    subscriptionSender.setBody(body);
    subscriptionSender.setCompanyId(user.getCompanyId());
    subscriptionSender.setContextAttributes(
        "[$USER_ID$]", user.getUserId(), "[$USER_PASSWORD$]", password,
        "[$USER_SCREENNAME$]", user.getScreenName());
    subscriptionSender.setFrom(fromAddress, fromName);
    subscriptionSender.setHtmlFormat(true);
    subscriptionSender.setMailId(
        "user", user.getUserId(), System.currentTimeMillis(),
        PwdGenerator.getPassword());
    subscriptionSender.setServiceContext(serviceContext);
    subscriptionSender.setSubject(subject);
    subscriptionSender.setUserId(user.getUserId());

    subscriptionSender.addRuntimeSubscribers(toAddress, toName);

    subscriptionSender.flushNotificationsAsync();

Это часть сервисного класса UserLocalServiceImpl. Здесь "PropsKeys.ADMIN_EMAIL_USER_ADDED_BODY" - это путь к шаблону для содержимого тела (по умолчанию используется liferay). Вы можете заполнить свои пользовательские данные в предоставленном шаблоне.

Редактировать: после выполнения вашей пользовательской логики, вы можете напрямую позвонить

UserLocalServiceUtil.sendPassword(
            long companyId, String emailAddress, String fromName,
            String fromAddress, String subject, String body,
            ServiceContext serviceContext)

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

Другие вопросы по тегам