2010-01-18 44 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

相關問題