2016-02-11 31 views
0

我有一個Portlet需要在完成後向用戶列表發送電子郵件,並且我想使用配置爲 「控制面板>服務器管理>電子郵件」的電子郵件發送然後,但我不能讓他在Portlet中獲取Portal SMPT電子郵件用戶

我試着使用:

PropsUtil.get(PropsKeys.MAIL_SESSION_MAIL_SMTP_USER) 

但是,沒有sucess

任何提示?

對不起,我的英語....

編輯:

我把我的電子郵件:

MailMessage mailMessage = new MailMessage(); 
mailMessage.setBody(bodyFromPreferences); 
mailMessage.setSubject(subjectFromPreferences); 
mailMessage.setFrom(from); 
mailMessage.setTo(to); 
MailServiceUtil.sendEmail(mailMessage); 

回答

0

沒有得到用戶名,密碼和其他SMTP數據,你也可以只使用Liferay的MailService發送您的郵件。當有知道如何發送郵件的服務時,爲什麼還要處理那些應該保密的數據。

由於「發件人」地址(如在評論中提及):通過看各種FROM選項,你在PropsKeys發現 - 我相信你找登錄與您正在使用的屬性郵件服務器你的問題

編輯(回答您的評論):

一個標準的MVC的portlet與此view.jsp的顯示發件人的名稱和地址,無論他們是否通過portal-ext.properties或通過控制面板配置(門戶設置/電子郵件通知/發件人)

<%@page import="com.liferay.portal.kernel.util.WebKeys"%> 
<%@page import="com.liferay.portal.theme.ThemeDisplay"%> 
<%@page import="com.liferay.portal.kernel.util.PropsKeys"%> 
<%@page import="com.liferay.portal.kernel.util.PrefsPropsUtil"%> 
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 

<portlet:defineObjects /> 

<% 
ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY); 
long companyId = themeDisplay.getCompanyId(); 
String fromName = PrefsPropsUtil.getString(companyId, PropsKeys.ADMIN_EMAIL_FROM_NAME); 
String fromAddress = PrefsPropsUtil.getString(companyId, PropsKeys.ADMIN_EMAIL_FROM_ADDRESS); 
%> 

From Name: <%=fromName%><br /> 
From Address: <%=fromAddress%><br /> 
+0

我已經使用MailService,但我需要「from」不?,或者我在做錯誤? – user3672263

+0

對不起,我錯過了。編輯答案 –

+0

我使用PropsKeys嘗試過,但是,這種方式只在我通過portal-ext.properties配置了電子郵件時才起作用,另一種方式是他從門戶網站返回默認值,因爲「控制面板>服務器管理>電子郵件中的配置「保存在我的數據庫....並感謝您的幫助:D – user3672263

0

我已經成功地檢索到的SMTP電子郵件,使用這樣的:

PortletPreferences serverPortletPreferences = PrefsPropsUtil 
       .getPreferences(); 

     Map<String, String[]> serverPortletPreferencesMap = serverPortletPreferences 
       .getMap(); 

     String emailUser = serverPortletPreferencesMap 
       .get(PropsKeys.MAIL_SESSION_MAIL_POP3_USER)[0]; 

     String emailAddress = serverPortletPreferencesMap 
       .get(PropsKeys.MAIL_SESSION_MAIL_SMTP_USER)[0]; 

serverPortletPreferencesMap是映射在PropsKeys鍵,這樣你就可以取回他們如果他們在portal.properties或數據庫

相關問題