Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在我的代码中实现电子邮件服务_Java_Jsp_Email_Jakarta Mail - Fatal编程技术网

Java 在我的代码中实现电子邮件服务

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

我一直在尝试实现下面的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.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“,”密码“;”