0
在我的liferay應用程序中,我通過以編程方式使用Expando而不是使用liferay默認用戶註冊來添加應用程序用戶。 現在,我想使用控制面板 - 門戶設置 - 電子郵件模板中提供的liferay默認模板,將憑據發送給用戶到他的電子郵件地址。如何以編程方式使用liferay內置電子郵件模板?
如何使用此liferay內置模板觸發電子郵件? 任何提示表示讚賞。
在我的liferay應用程序中,我通過以編程方式使用Expando而不是使用liferay默認用戶註冊來添加應用程序用戶。 現在,我想使用控制面板 - 門戶設置 - 電子郵件模板中提供的liferay默認模板,將憑據發送給用戶到他的電子郵件地址。如何以編程方式使用liferay內置電子郵件模板?
如何使用此liferay內置模板觸發電子郵件? 任何提示表示讚賞。
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();
這是服務impl類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的模板以及密碼管理的服務呼叫。
感謝您的回覆,但我還需要發送用戶密碼,從哪裏可以獲取用戶密碼? –
嘗試使用user.getPassword()作爲 –
user.getPassword()給我加密的密碼,無法解密。所以這沒有用。 –