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 テンプレートの使用とパスワード管理を処理します。