我有一个portlet需要在完成后向用户列表发送电子邮件,我想使用配置的电子邮件 “控制面板>服务器管理>电子邮件”然后发送,但我无法得到他
我尝试使用:
PropsUtil.get(PropsKeys.MAIL_SESSION_MAIL_SMTP_USER)
但是,没有成功
任何提示?
抱歉我的英语......编辑:
我发送电子邮件:
MailMessage mailMessage = new MailMessage();
mailMessage.setBody(bodyFromPreferences);
mailMessage.setSubject(subjectFromPreferences);
mailMessage.setFrom(from);
mailMessage.setTo(to);
MailServiceUtil.sendEmail(mailMessage);
答案 0 :(得分:0)
如果没有获取用户名,密码和其他smtp数据,您也可以使用Liferay的MailService发送邮件。当有一个知道如何发送邮件的服务时,为什么还要处理那些应该保密的数据。
从" From"地址(在评论中提到):查看您在PropsKeys中找到的各种FROM
选项 - 我相信您已经选择了具有您所在属性的邮件服务器的登录信息在你的问题中使用
编辑(回答你的评论):
带有此view.jsp的标准MVC portlet显示发件人姓名和地址,无论他们是通过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 />
答案 1 :(得分: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或DataBase中,则可以检索它们