2016-07-27 46 views
0

在我的liferay應用程序中,我通過以編程方式使用Expando而不是使用liferay默認用戶註冊來添加應用程序用戶。 現在,我想使用控制面板 - 門戶設置 - 電子郵件模板中提供的liferay默認模板,將憑據發送給用戶到他的電子郵件地址。如何以編程方式使用liferay內置電子郵件模板?

如何使用此liferay內置模板觸發電子郵件? 任何提示表示讚賞。

回答

0

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的模板以及密碼管理的服務呼叫。

+0

感謝您的回覆,但我還需要發送用戶密碼,從哪裏可以獲取用戶密碼? –

+0

嘗試使用user.getPassword()作爲 –

+0

user.getPassword()給我加密的密碼,無法解密。所以這沒有用。 –

相關問題