我正在尝试使用Apache James服务器发送邮件。我已经完成了所有詹姆斯的配置。
我的代码正确执行,没有例外。但是邮件无法传递。
这是我的示例代码

public void sendMail(String toField, String subject, Users user,
                               HttpServletRequest request)throws Exception {
    // TODO Auto-generated method stub
    logger.info("sending mail....");
    String loginLink = request.getScheme()  +"://" + request.getServerName()
     + ":" + request.getServerPort() + request.getContextPath()+"/auth/login";

    // Prepare the evaluation context
    final WebContext ctx = new WebContext(request, request.getSession()
                                    .getServletContext(),request.getLocale());

    ctx.setVariable("eagletId", user.getEagletId());
    ctx.setVariable("name", user.getFirstName());
    ctx.setVariable("setSentDate", new Date());
    ctx.setVariable("password", user.getPassword());
    ctx.setVariable("link",loginLink);

    // Create a mail session
    Properties properties = new Properties();
    properties.put("mail.smtp.host", "localhost");
    properties.put("mail.smtp.port", "25");
    properties.put("mail.smtp.username", "coepleap");
    properties.put("mail.smtp.password", "coepleap");
    Session session = Session.getDefaultInstance(properties,new Authenticator() {
        protected PasswordAuthentication getpassAuthentication(){
            return new PasswordAuthentication("coepleap", "coepleap");
        }
    });

    MimeMessage message = new MimeMessage(session);
    MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
    message.setFrom(new InternetAddress("coepleap"));
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(toField));
    helper.setSubject(subject);

    final String htmlContent = this.templateEngine.process("email.html",ctx);
    helper.setText(htmlContent,true);
    Transport.send(message);
 }

}


谁能帮助我?

最佳答案

这是使用gmail发送邮件的代码

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMail {

public static void main(String[] args) {

    final String username = "username";
    final String password = "fghdf";

    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("from user"));
        message.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse("to user"));
        message.setSubject("Testing Subject");
        message.setText("Dear user ,"
            + "\n\n your username is xxx and pasword is yyy");

        Transport.send(message);

        System.out.println("Done");

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


}

10-07 19:42
查看更多