我一直试图通过Liferay中的java Web应用程序发送邮件,但似乎没有用

lee*_*lee 0 java liferay

下面是我的代码,请指出我做错了什么?java我试图通过使用我们的内部网络来做到这一点.这是在MVC portlet中的processAction方法中编写的.

String name=actionRequest.getParameter("name");
String email=actionRequest.getParameter("email");
String myMessage=actionRequest.getParameter("message");

String host = "smtp.xyz.com";
int port = 25;
String username = "xxx";
String password = "yyy";

    Properties props = new Properties();
    props.put("mail.transport.protocol","smtp");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.host", "smtp.xyz.com");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.user", username);
    props.put("mail.smtp.password", password);


    Session session = Session.getInstance(props);

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(email));
                          message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("xxx"));
        message.setSubject("Testing Subject");
        message.setText("From " + name + "," + myMessage);

        Transport transport = session.getTransport("smtp");
        transport.connect(host, port, username, password);

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }

}
Run Code Online (Sandbox Code Playgroud)

nps*_*irk 7

如果电子邮件配置可以与其他portlet和Liferay本身共享,请尝试使用Liferay附带的内置邮件服务

(依赖于com.liferay.mail.service.MailServiceUtil)

String fromEmail = "admin@example.com";
String fromName = "Site Administrator";
String subject = "Hello from example.com";
String body = "text of message";
InternetAddress from = new InternetAddress(fromEmail, fromName);
InternetAddress to = InternetAddress.parse("xxx");
MailMessage emailMessage = new MailMessage(from, to, subject, body, false);
MailServiceUtil.sendEmail(emailMessage);
Run Code Online (Sandbox Code Playgroud)

这种方法的完整示例:https://github.com/kastork/dharma-pm-portlet/blob/master/docroot/WEB-INF/src/com/dharma/pm/portlet/PMPortlet.java

执行此操作时,将使用为Portal设置的邮件配置,因此您需要配置Liferay以访问SMTP服务器.(您可能希望无论如何都要进行配置,以便Liferay可以执行诸如发送密码提醒,维基页面更改通知等操作).以下是研究此任务的一个起点:

http://www.liferay.com/documentation/liferay-portal/6.1/user-guide/-/ai/ma-5