&引用;“java.net.connectionException”;显示连接被拒绝

&引用;“java.net.connectionException”;显示连接被拒绝,java,email,servlets,Java,Email,Servlets,我正在尝试使用java邮件api,并且在servlet中有以下代码用于sen mail。我找不到解决错误的方法 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // Recipient's email ID n

我正在尝试使用java邮件api,并且在servlet中有以下代码用于sen mail。我找不到解决错误的方法

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        // Recipient's email ID needs to be mentioned.
          String to = "xyz@gmail.com";

          // Sender's email ID needs to be mentioned
          String from = "abc.com";

          // Assuming you are sending email from localhost
          String host = "localhost";

          // Get system properties
          Properties properties = System.getProperties();

          // Setup mail server
          properties.setProperty("mail.smtp.host", host);

          // Get the default Session object.
          Session session = Session.getDefaultInstance(properties);

          // Set response content type
          response.setContentType("text/html");
          PrintWriter out = response.getWriter();

          try{
             // Create a default MimeMessage object.
             MimeMessage message = new MimeMessage(session);
             // Set From: header field of the header.
             message.setFrom(new InternetAddress(from));
             // Set To: header field of the header.
             message.addRecipient(Message.RecipientType.TO,
                                      new InternetAddress(to));
             // Set Subject: header field
             String subject=request.getParameter("subject");
             String content=request.getParameter("mail");


             message.setSubject(subject);
             // Now set the actual message
             message.setText(content);
             // Send message
             Transport.send(message);
             String title = "Send Email";
             String res = "Sent message successfully....";
             String docType =
             "<!doctype html public \"-//w3c//dtd html 4.0 " +
             "transitional//en\">\n";
             out.println(docType +
             "<html>\n" +
             "<head><title>" + title + "</title></head>\n" +
             "<body bgcolor=\"#f0f0f0\">\n" +
             "<h1 align=\"center\">" + title + "</h1>\n" +
             "<p align=\"center\">" + res + "</p>\n" +
             "</body></html>");
          }catch (MessagingException mex) {
             mex.printStackTrace();
          }

    }
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
//TODO自动生成的方法存根
//需要提及收件人的电子邮件ID。
字符串to=”xyz@gmail.com";
//需要提及发件人的电子邮件ID
字符串from=“abc.com”;
//假设您正在从本地主机发送电子邮件
String host=“localhost”;
//获取系统属性
Properties=System.getProperties();
//安装邮件服务器
setProperty(“mail.smtp.host”,host);
//获取默认会话对象。
Session Session=Session.getDefaultInstance(属性);
//设置响应内容类型
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
试一试{
//创建默认的mimessage对象。
MimeMessage message=新MimeMessage(会话);
//设置自:标题的标题字段。
message.setFrom(新的InternetAddress(from));
//设置为:标题的标题字段。
message.addRecipient(message.RecipientType.TO,
新互联网地址(至);;
//设置主题:标题字段
字符串subject=request.getParameter(“subject”);
字符串内容=request.getParameter(“邮件”);
message.setSubject(主题);
//现在设置实际消息
message.setText(内容);
//发送消息
传输。发送(消息);
String title=“发送电子邮件”;
String res=“已成功发送消息…”;
字符串docType=
“\n”;
out.println(docType+
“\n”+
“”+标题+“\n”+
“\n”+
“”+标题+“\n”+
“

“+res+”

\n”+ ""); }捕获(消息例外mex){ mex.printStackTrace(); } }
我的控制台中出现以下错误:

原因:java.net.ConnectException:连接被拒绝:连接在 java.net.DualStackPlainSocketImpl.connect0(本机方法)位于 位于的java.net.DualStackPlainSocketImpl.socketConnect(未知源) java.net.AbstractPlainSocketImpl.doConnect(未知源代码)位于 位于的java.net.AbstractPlainSocketImpl.connectToAddress(未知源) java.net.AbstractPlainSocketImpl.connect(未知源代码)位于 位于的java.net.PlainSocketImpl.connect(未知源) 位于的java.net.socksocketimpl.connect(未知源) 位于的java.net.Socket.connect(未知源) 位于的java.net.Socket.connect(未知源) com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:312) 位于com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:236) 在 com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2019) ... 还有29个


您没有在
localhost
上运行SMTP服务器,您正在告诉API使用
localhost
作为邮件服务器

您需要安装本地SMTP服务器,或将SMTP主机名设置为您有权访问的服务器,例如:

      String host = "smtp.yourisp.com"; // real server name required here

      // Get system properties
      Properties properties = System.getProperties();

      // Setup mail server
      properties.setProperty("mail.smtp.host", host);

您需要在本地邮箱上安装smtp服务器或使用一些现有的smtp服务器(如yahoo、gmail等。您可以在internet上获得smtp设置)。您可以使用ApacheJames服务器,并了解有关它的邮件发送api。

String from=“abc.com”-首先,这不是一个有效的电子邮件地址。