使用servlet發送郵件時出現錯誤(在eclispe中)。我還在我的類路徑中包含mail.jar和activation.jar。使用java servlet發送電子郵件時顯示錯誤?
我的servlet代碼看起來像
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;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class Controller extends HttpServlet
{
private static final long serialVersionUID = 1L;
public Controller() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
doProcess(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
doProcess(request,response);
}
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
final String user = request.getParameter("email");
final String pwd = request.getParameter("pwd");
String sub = request.getParameter("subject");
String body = request.getParameter("msg");
String to = "[email protected]";
//Get the session object
Properties props = new Properties();
props.put("mail.smtp.host","localhost");
props.put("mail.smtp.auth","true");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user,pwd);
}
});
//Compose message
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(user));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(sub);
message.setText(body);
//Send message
Transport.send(message);
}catch(MessagingException e){
throw new RuntimeException(e);
}
request.setAttribute("sendMsg","Message successfully send.");
RequestDispatcher rd = request.getRequestDispatcher("contactus.jsp");
rd.forward(request, response);
}
}
和錯誤是這樣的:
HTTP狀態500 - javax.mail.AuthenticationFailedException:535沒有定義SMTP服務器。在您的帳戶中使用真實的服務器地址而不是127.0.0.1。
在您的帳戶中使用真實服務器地址而不是127.0.0.1(仔細閱讀您的錯誤? –
郵件服務器需要正確配置。您有smtp主機作爲本地主機,它應該是smtp服務器ip。沒有smtp服務器,使用google提供的默認smtp配置,可以測試郵件api。 – Amz
我該如何在eclispe中設置smtp服務器? – Aditya