如何通过Localhost从JavaMail发送邮件

时间:2010-01-18 19:09:57

标签: java email javamail

我正在创建一个表单,用户在完成详细信息后会通过电子邮件发送详细信息并点击提交。

使用JavaMail进行邮件提交:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

    PrintWriter out = response.getWriter();
    try {
        String host = "localhost";
        String from = "root@localhost.localdomain";

        try {
        Properties props = System.getProperties();
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.user", from);
        props.put("mail.debug", "true");

        Session session = Session.getDefaultInstance(props, null);
        session.setDebug(true);
        Transport transport = session.getTransport("smtp");

        MimeMessage message = new MimeMessage(session);
        Address fromAddress = new InternetAddress("root@localhost.localdomain");

        message.setFrom(fromAddress);

        InternetAddress to = new InternetAddress("sendToAliases@localhost.localdomain");
        message.addRecipient(Message.RecipientType.TO, to);

        message.setSubject("Email Details Sending");
        message.setText("This is my testing content.");

        transport.connect(host, from);
        message.saveChanges();
        Transport.send(message);
        transport.close();
    } finally { 
        out.close();
    }
} 

我正在使用sendToAliases@localhost.localdomain的电子邮件别名,这意味着我可以从sendToAliases获得4个电子邮件别名。但是,在部署和运行上述邮件文件时,我无法访问任何电子邮件。有人可以告诉我吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

  • 您检查过日志文件吗?
  • 运行程序时是否出现任何异常或错误?
  • 您是否在localhost中运行SMTP服务器?
  • SMTP服务器是否接受来自localhost的连接?
  • 您可以使用普通的电子邮件客户端通过该服务器发送电子邮件并以某种方式接收它们吗?
  • 尝试使您的程序成为独立的命令行程序并尝试执行它

message.setSubject("Email Details Sending);似乎缺少引用。你确定你的servlet实际编译了吗?

相关问题