Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 在portlet中获取门户SMPT电子邮件用户_Email_Liferay - Fatal编程技术网

Email 在portlet中获取门户SMPT电子邮件用户

Email 在portlet中获取门户SMPT电子邮件用户,email,liferay,Email,Liferay,我有一个portlet,需要在用户完成后向用户列表发送一封电子邮件,我想使用在上配置的电子邮件 “控制面板>服务器管理>电子邮件”发送,但我找不到他 我尝试使用: PropsUtil.get(PropsKeys.MAIL_SESSION_MAIL_SMTP_USER) 但是,没有成功 有什么建议吗 对不起,我的英语 编辑: 我通过以下方式发送电子邮件: MailMessage mailMessage = new MailMessage(); mailMessage.setBody(bodyFr

我有一个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);

在不获取用户名、密码和其他smtp数据的情况下,您也可以使用Liferay发送邮件。既然有一个知道如何发送邮件的服务机构,为什么还要处理那些无论如何都应该保密的数据呢

从“发件人”地址开始(如评论中所述):查看您在中找到的各种
From
选项-我相信您已经选择了邮件服务器的登录名以及您在问题中使用的属性

编辑(回答您的评论):

带有此view.jsp的标准MVC portlet显示发件人名称和地址,无论是通过portal-ext.properties还是通过控制面板(门户设置/电子邮件通知/发件人)配置的


发件人姓名:
发件人地址:

我已使用以下方法成功检索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];
PortletPreferences服务器PortletPreferences=PrefsPropsUtil
.getPreferences();
映射serverPortletPreferencesMap=serverPortletPreferences
.getMap();
字符串emailUser=serverPortletPreferencesMap
.get(PropsKeys.MAIL\u SESSION\u MAIL\u POP3\u USER)[0];
字符串emailAddress=serverPortletPreferencesMap
.get(PropsKeys.MAIL\u会话\u MAIL\u SMTP\u用户)[0];

serverPortletPreferencesMap是一个在PropsKeys中包含键的映射,因此如果它们位于portal.properties或您的数据库中,您可以检索它们

我已经在使用MailService,但我需要“from”not?,否则我做错了什么?抱歉,我错过了。编辑回答我尝试使用PropsKeys,但是,只有当我通过portal-ext.properties配置了我的电子邮件时,这种方式才有效,否则他会从门户返回默认值,因为“控制面板>服务器管理>电子邮件”中的配置保存在我的数据库中……感谢您的帮助:我可以获得管理员电子邮件,但他与我配置的smpt电子邮件不同您是指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];