2017-08-20 58 views
0

我正嘗試在JSP中使用java郵件發送反饋電子郵件。我的代碼是使用jsp使用java郵件發送反饋郵件

<%@ page import = "java.io.*,java.util.*,javax.mail.*"%> 
<%@ page import = "javax.mail.internet.*,javax.activation.*"%> 
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %> 

<% 
    String result; 
    String to = "[email protected]"; 
    String from = "[email protected]"; 
    String host = "smtp.gmail.com"; 
    Properties properties = System.getProperties(); 
    properties.setProperty("mail.smtp.host", host); 
    Session mailSession = Session.getDefaultInstance(properties); 
    try { 
     MimeMessage message = new MimeMessage(mailSession); 
     message.setFrom(new InternetAddress(from)); 
     message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); 
     message.setSubject("subject"); 
     message.setText("message to send"); 
     Transport.send(message); 
     result = "Sent message successfully...."; 
    } 
    catch (MessagingException mex) { 
     mex.printStackTrace(); 
     result = "Error: unable to send message...."; 
    } 
%> 
<html> 
    <head> 
     <title>Send Email using JSP</title> 
    </head> 
    <body> 
     <center> 
     <h1>Send Email using JSP</h1> 
     </center> 
     <p align = "center"> 
     <% 
      out.println("Result: " + result + "\n"); 
     %> 
     </p> 
    </body> 
</html> 

但它始終顯示錯誤:無法發送消息...... 是否存在與代碼的任何問題....? 我試圖打印錯誤消息,它顯示驗證錯誤,無法發送像這樣。 由於這是一封反饋電子郵件,我不希望用戶提供他/她的密碼來發送電子郵件,請提供更好的解決方案(我已將mail.jar和activation.jar包含在庫文件夾中)。

回答

0

您需要使用自己的憑據登錄到郵件服務器。

+0

哦對不起,我忘了提及我使用我自己的憑據。我在這裏分享之前就改變了他們。 – vinay

+0

我認爲你讓收件人與憑證混淆。您需要登錄到您的郵件服務器。使用[帶有用戶名和密碼的Transport.send方法](https://javaee.github.io/javamail/docs/api/javax/mail/Transport.html#send-javax.mail.Message-java.lang .String-java.lang.String-)。如果這不起作用,請發佈[JavaMail調試輸出](https://javaee.github.io/javamail/FAQ#debug)。您還應該修復這些[常見錯誤](https://javaee.github.io/javamail/FAQ#commonmistakes)。 –

+0

非常感謝,先生。我發送了一封成功的電子郵件。但我不希望它是這樣。當用戶發送反饋電子郵件時,他只指定他的電子郵件ID,任何地方都不會詢問密碼。我正在嘗試做同樣的事情。是的,當我給密碼發送電子郵件,但沒有網站或應用程序要求發件人的密碼。我如何在不給發件人密碼的情況下做到這一點。 – vinay