Java 在我的代码中实现电子邮件服务
我一直在尝试实现下面的servlet代码来实现电子邮件功能,但我不断地在这段代码中遇到错误。请看一看Java 在我的代码中实现电子邮件服务,java,jsp,email,jakarta-mail,Java,Jsp,Email,Jakarta Mail,我一直在尝试实现下面的servlet代码来实现电子邮件功能,但我不断地在这段代码中遇到错误。请看一看 import java.io.IOException; import java.io.PrintWriter; import java.util.Properties; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServle
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import javax.servlet.RequestDispatcher;
public class email extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String to="amanmaheshwari25@gmail.com"; //emailID at which the mail is send
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Session session=null;
try{
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("cconatus.2011@gmail.com","password");//change accordingly
}
});}
catch(Exception e)
{out.println("error234");}
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("ccnatus.2011@gmail.com"));//change accordingly
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("Pls find the message inside");
String dd = "hey";
message.setText(dd);
//send message
Transport.send(message);
out.println("success");
}
catch(Exception e)
{out.println("error");}
finally {
out.close();
}
}
我得到的结果是:
错误,即来自最后一个catch块
请尽快对此提出一些建议。以下是对我有用的属性: mail.transport.protocol=smtp mail.smtp.host=smtp.gmail.com mail.smtp.auth=true mail.smtp.starttls.enable=true mail.smtp.port=587
以下是对我有用的属性: mail.transport.protocol=smtp mail.smtp.host=smtp.gmail.com mail.smtp.auth=true mail.smtp.starttls.enable=true mail.smtp.port=587
你能发布Stacktrace吗?开始,而不是
out.println(“错误”)代码>为什么不输出堆栈跟踪?@PeterRader堆栈跟踪如下:“javax.mail.MessaginException:无法连接到SMTP主机:SMTP.gmail.com,端口:465;嵌套的异常是:java.net.ConnectException:连接超时:在com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972)上连接com.sun.mail.SMTPTransport.protocolConnect(SMTPTransport.java:642)在javax.mail.Service.connect(Service.java:317)在javax.mail.Service.connect(Service.java:176)上连接'您可以发布Stacktrace?以开始,而不是out.println(“错误”)代码>为什么不输出堆栈跟踪?@PeterRader堆栈跟踪如下:“javax.mail.MessaginException:无法连接到SMTP主机:SMTP.gmail.com,端口:465;嵌套的异常是:java.net.ConnectException:连接超时:在com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972)上连接com.sun.mail.SMTPTransport.protocolConnect(SMTPTransport.java:642)在javax.mail.Service.connect(Service.java:317)在javax.mail.Service.connect(Service.java:176)上连接'仍然无法通过这些属性发送邮件。。。。。我在两天前用过,效果很好。。。。。我不知道现在发生了什么。。。。。你能给我发一份你在其中实现它的项目的web.xml文件吗。。。。。。请:)@aman我不能给你发那个代码,因为它不是开源的。我确实比较了你的代码和我的代码,它们看起来非常相似。除了属性的不同之外,我发现的唯一区别是您使用message.setText,而我使用message.setContent。我不确定您希望在web.xml中找到什么。我实际上需要找出web.xml文件中设置的端口号的值与上面代码中设置的值相同,或者有任何更改。”端口25端口465用户您的\u电子邮件传递您的\u密码“为什么端口号的值已在其中设置了两次”。以及为什么user和password的值与代码“returnnewpasswordauthentication”(“cconatus”)中提到的不同。2011@gmail.com“,”密码“;”仍然无法通过这些属性发送邮件。。。。。我在两天前用过,效果很好。。。。。我不知道现在发生了什么。。。。。你能给我发一份你在其中实现它的项目的web.xml文件吗。。。。。。请:)@aman我不能给你发那个代码,因为它不是开源的。我确实比较了你的代码和我的代码,它们看起来非常相似。除了属性的不同之外,我发现的唯一区别是您使用message.setText,而我使用message.setContent。我不确定您希望在web.xml中找到什么。我实际上需要找出web.xml文件中设置的端口号的值与上面代码中设置的值相同,或者有任何更改。”端口25端口465用户您的\u电子邮件传递您的\u密码“为什么端口号的值已在其中设置了两次”。以及为什么user和password的值与代码“returnnewpasswordauthentication”(“cconatus”)中提到的不同。2011@gmail.com“,”密码“;”