我为发送邮件编写了以下代码。(java maven Web应用程序)。

公共类MailAction扩展了ActionSupport {

private String mailId;

public String getMailId() {
    return mailId;
}

public void setMailId(String mailId) {
    this.mailId = mailId;
}

final String username = "my email";
final String password = "my password";

public String execute() throws Exception {

    HttpServletRequest request = ServletActionContext.getRequest();
    HttpServletResponse servletResponse;

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("my email"));
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse(request.getParameter("mailId")));

        message.setSubject("Testing Subject");
        message.setText("Dear Mail Crawler,"
                + "\n\n No spam to my email, please!");

        System.out.println(request.getParameter("mailId"));
        System.out.println(message);

        Transport.send(message);

        System.out.println("Done");

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

    return SUCCESS;
}


当我运行程序时,未找到API包“ mail”或调用“ Send()”,但出现异常。
请帮我解决这个问题。

最佳答案

问题在于“运输”,请参见随附的代码

Transport transport = session.getTransport("smtp");
transport.connect("smtp.gmail.com", 465, "username", "password");
transport.sendMessage(message, message.getAllRecipients());
transport.close();

10-08 00:23