Java can';不要用liferay发送电子邮件
那样不行Java can';不要用liferay发送电子邮件,java,liferay,Java,Liferay,那样不行 MailServiceUtil.sendEmail(msg); 这样我就犯了一个错误: MailEngine.send(from, to, sub, body); 我应该怎么做才能使其正常工作?您缺少身份验证属性,请检查完整的示例。您缺少身份验证属性,请检查完整的示例。最可能的问题是您使用的是SMTP协议而没有SSL。如果这是基于JavaMail的,请确保使用smtps协议,因为它是带SSL的SMTP协议。还要确保启用身份验证。请参阅最有可能的问题是您正在使用不带SSL的SMTP协
MailServiceUtil.sendEmail(msg);
这样我就犯了一个错误:
MailEngine.send(from, to, sub, body);
我应该怎么做才能使其正常工作?您缺少身份验证属性,请检查完整的示例。您缺少身份验证属性,请检查完整的示例。最可能的问题是您使用的是SMTP协议而没有SSL。如果这是基于JavaMail的,请确保使用smtps协议,因为它是带SSL的SMTP协议。还要确保启用身份验证。请参阅最有可能的问题是您正在使用不带SSL的SMTP协议进行连接。如果这是基于JavaMail的,请确保使用smtps协议,因为它是带SSL的SMTP协议。还要确保启用身份验证。查看邮件配置页面“发送SMTP服务器”下的“使用安全网络连接”是否选中 您还可以尝试设置“手动指定其他JavaMail属性以覆盖上述配置” 您是否在邮件配置页面的“发送SMTP服务器”下选中了“使用安全网络连接” 您还可以尝试设置“手动指定其他JavaMail属性以覆盖上述配置”
要从Liferay发送电子邮件,我建议使用消息总线。为此目的,有两个临时目的地。您可以在我的存储库中找到完整的示例。下面是一段使用SubscriptionSender类的示例代码,SubscriptionSender类反过来使用消息总线
mail.smtp.auth=true
mail.smtp.port=465
mail.smtp.socketFactory.port=465
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.socketFactory.fallback=false
SubscriptionSender SubscriptionSender=newsubscriptionsender();
认购人。集合主体(“Lista degli utenti disattivati”);
subscriptionSender.setBody(emailBody.toString());
subscriptionSender.setUserId(user.getUserId());
subscriptionSender.setCompanyId(user.getCompanyId());
subscriptionSender.setFrom(“noreply@liferay.com“,“Liferay门户”);
subscriptionSender.setHtmlFormat(false);
subscriptionSender.setMailId(“user”,user.getUserId());
subscriptionSender.addRuntimeSubscribers(
user.getEmailAddress(),
user.getFullName());
列表电子邮件=(列表)user.getEmailAddresses();
如果(emails.size()>0){
如果(_log.isInfoEnabled()){
_log.info(“User”+User.getUserId()+
“有其他电子邮件地址”);
}
用于(电子邮件地址电子邮件地址:电子邮件){
subscriptionSender.addRuntimeSubscribers(
emailAddress.getAddress(),
(字符串)user.getFullName());
}
}
subscriptionSender.flushNotificationsAsync();
您可以在找到完整的源代码,以便从Liferay发送电子邮件。我建议使用消息总线。为此目的,有两个临时目的地。您可以在我的存储库中找到完整的示例。下面是一段使用SubscriptionSender类的示例代码,SubscriptionSender类反过来使用消息总线
mail.smtp.auth=true
mail.smtp.port=465
mail.smtp.socketFactory.port=465
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.socketFactory.fallback=false
SubscriptionSender SubscriptionSender=newsubscriptionsender();
认购人。集合主体(“Lista degli utenti disattivati”);
subscriptionSender.setBody(emailBody.toString());
subscriptionSender.setUserId(user.getUserId());
subscriptionSender.setCompanyId(user.getCompanyId());
subscriptionSender.setFrom(“noreply@liferay.com“,“Liferay门户”);
subscriptionSender.setHtmlFormat(false);
subscriptionSender.setMailId(“user”,user.getUserId());
subscriptionSender.addRuntimeSubscribers(
user.getEmailAddress(),
user.getFullName());
列表电子邮件=(列表)user.getEmailAddresses();
如果(emails.size()>0){
如果(_log.isInfoEnabled()){
_log.info(“User”+User.getUserId()+
“有其他电子邮件地址”);
}
用于(电子邮件地址电子邮件地址:电子邮件){
subscriptionSender.addRuntimeSubscribers(
emailAddress.getAddress(),
(字符串)user.getFullName());
}
}
subscriptionSender.flushNotificationsAsync();
您可以在找到完整的源代码,这是我多年来在portal-ext.properties中使用的GMail配置:
SubscriptionSender subscriptionSender = new SubscriptionSender();
subscriptionSender.setSubject("Lista degli utenti disattivati");
subscriptionSender.setBody(emailBody.toString());
subscriptionSender.setUserId(user.getUserId());
subscriptionSender.setCompanyId(user.getCompanyId());
subscriptionSender.setFrom("noreply@liferay.com", "Liferay Portal");
subscriptionSender.setHtmlFormat(false);
subscriptionSender.setMailId("user", user.getUserId());
subscriptionSender.addRuntimeSubscribers(
user.getEmailAddress(),
user.getFullName());
List<EmailAddress> emails = (List<EmailAddress>) user.getEmailAddresses();
if (emails.size() > 0) {
if (_log.isInfoEnabled()) {
_log.info("User " + user.getUserId() +
" has additional emails address");
}
for (EmailAddress emailAddress : emails) {
subscriptionSender.addRuntimeSubscribers(
emailAddress.getAddress(),
(String) user.getFullName());
}
}
subscriptionSender.flushNotificationsAsync();
mail.session.mail.pop3.host=localhost
mail.session.mail.pop3.password=
mail.session.mail.pop3.port=110
mail.session.mail.pop3.user=
mail.session.mail.smtp.auth=true
mail.session.mail.smtp.host=smtp.gmail.com
mail.session.mail.smtp.port=465
mail.session.mail.smtp.password=
mail.session.mail.smtp.user=
mail.session.mail.store.protocol=pop3
mail.session.mail.transport.protocol=smtp
mail.session.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.session.mail.smtp.starttls.enable=true
以下是portal-ext.properties中为我工作多年的GMail配置:
SubscriptionSender subscriptionSender = new SubscriptionSender();
subscriptionSender.setSubject("Lista degli utenti disattivati");
subscriptionSender.setBody(emailBody.toString());
subscriptionSender.setUserId(user.getUserId());
subscriptionSender.setCompanyId(user.getCompanyId());
subscriptionSender.setFrom("noreply@liferay.com", "Liferay Portal");
subscriptionSender.setHtmlFormat(false);
subscriptionSender.setMailId("user", user.getUserId());
subscriptionSender.addRuntimeSubscribers(
user.getEmailAddress(),
user.getFullName());
List<EmailAddress> emails = (List<EmailAddress>) user.getEmailAddresses();
if (emails.size() > 0) {
if (_log.isInfoEnabled()) {
_log.info("User " + user.getUserId() +
" has additional emails address");
}
for (EmailAddress emailAddress : emails) {
subscriptionSender.addRuntimeSubscribers(
emailAddress.getAddress(),
(String) user.getFullName());
}
}
subscriptionSender.flushNotificationsAsync();
mail.session.mail.pop3.host=localhost
mail.session.mail.pop3.password=
mail.session.mail.pop3.port=110
mail.session.mail.pop3.user=
mail.session.mail.smtp.auth=true
mail.session.mail.smtp.host=smtp.gmail.com
mail.session.mail.smtp.port=465
mail.session.mail.smtp.password=
mail.session.mail.smtp.user=
mail.session.mail.store.protocol=pop3
mail.session.mail.transport.protocol=smtp
mail.session.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.session.mail.smtp.starttls.enable=true
谢谢,我已经尝试通过ROOT.xml和控制面板设置我的SMTP属性,你有其他想法吗?@user1075116在哪里设置用户名和密码?其中一个示例对您有用吗?谢谢,我已经尝试通过ROOT.xml和控制面板设置SMTP属性,您有其他想法吗?@user1075116在哪里设置用户名和密码?其中的一个例子对您有用吗?因为JavaMail有一个单独的smtps协议提供程序来处理使用SSL的SMTP,所以
mail.session.mail.pop3.host=localhost
mail.session.mail.pop3.password=
mail.session.mail.pop3.port=110
mail.session.mail.pop3.user=
mail.session.mail.smtp.auth=true
mail.session.mail.smtp.host=smtp.gmail.com
mail.session.mail.smtp.port=465
mail.session.mail.smtp.password=<MY-PASSWORD-ON-GMAIL>
mail.session.mail.smtp.user=<MY-USERNAME-ON-GMAIL-(WITHOUT-@GMAIL.COM)>
mail.session.mail.store.protocol=pop3
mail.session.mail.transport.protocol=smtp
mail.session.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.session.mail.smtp.starttls.enable=true