2010-01-18 113 views
0

我正在创建一个表单,当用户完成他的详细信息并单击提交时,该表单将通过电子邮件发送详细信息。如何通过本地主机从JavaMail发送邮件

邮件提交用JavaMail:

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

    PrintWriter out = response.getWriter(); 
    try { 
     String host = "localhost"; 
     String from = "[email protected]"; 

     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("[email protected]"); 

     message.setFrom(fromAddress); 

     InternetAddress to = new InternetAddress("[email protected]"); 
     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(); 
    } 
} 

我使用[email protected]电子邮件别名,这意味着我可以从sendToAliases 4电子邮件别名。但是,在部署和运行上述邮件文件时,我无法收到任何电子邮件。任何人都可以请教我吗?

谢谢。

+2

你有smtp服务器吗? – 2010-01-18 19:13:13

+0

是的,我只是做了一个telnet myserver 25 – 2010-01-19 03:52:00

回答

2
  • 您是否检查过日志文件?
  • 运行该程序时是否有任何异常或错误?
  • 你有在本地主机上运行的SMTP服务器吗?
  • SMTP服务器是否接受本地主机的连接?
  • 你可以使用普通的电子邮件客户端通过该服务器发送电子邮件,并以某种方式接收它们?
  • 设法让你的程序一个独立的命令行程序,并尝试执行它

你似乎有一个丢失的报价在message.setSubject("Email Details Sending);。你确定你的servlet实际编译?

+0

嗨, 我测试了使用telnet从命令行发送电子邮件,它完美的工作。关于message.setSubject(“Email Details Sending”);是粘贴错误,我在代码中有这样的错误。 – 2010-01-19 06:13:21