当前位置: 首页 > 知识库问答 >
问题:

通过gmail smtp服务器通过java发送邮件时发生java.net.SocketException

任绪
2023-03-14

我正试图通过gmailSMTP服务器通过java代码发送邮件,但面临java.net.SocketException:连接重置

以下是发送邮件的代码:-`

  Properties props = new Properties();
  props.put("mail.smtp.host",host);  //host is smtp.gmail.com
  if(host.equalsIgnoreCase("smtp.gmail.com"))
  {
      props.put("mail.smtp.socketFactory.port",port);
      props.put("mail.smtp.socketFactory.class",
              "javax.net.ssl.SSLSocketFactory");
      props.put("mail.smtp.auth", "true");
      props.put("mail.smtp.port",port);//port is 465

  }
  else
  {
      props.put("mail.smtp.auth", "true");
  }
  Session session = Session.getDefaultInstance(props,
          new javax.mail.Authenticator() {
      protected PasswordAuthentication getPasswordAuthentication() {
          return new PasswordAuthentication(uname,pwd);
      }
  });

      try {

          session.setDebug(true);
          MimeMessage message = new MimeMessage(session);

          message.setFrom(new InternetAddress(uname));

          message.addRecipient(Message.RecipientType.TO,new InternetAddress(toMail));

          message.setSubject(NewFolderName);
          System.out.println("Composing message body.");

          StringBuilder htmlStreamBuilder = new StringBuilder();
          // we create some html string here.....
          Multipart multipart = new MimeMultipart();

          MimeBodyPart htmlPart = new MimeBodyPart();
          MimeBodyPart attachmentPart= new MimeBodyPart();              

          DataSource source = new FileDataSource(filename);
          attachmentPart.setDataHandler(new DataHandler(source));
          attachmentPart.setFileName(KMAConstants.TESTNG_ATTACHMENT_FILE);

          htmlPart.setContent(htmlStream, "text/html; charset=utf-8");//we give some html stream here ....


          multipart.addBodyPart(htmlPart);
          multipart.addBodyPart(attachmentPart);


          message.setContent(multipart);

          Transport.send(message);



      } catch (MessagingException e)
      {

          System.out.println("Issue in message sending, MessagingExceptionn raised.");
          e.printStackTrace();

          throw e;
      }
  }

  `

`

这里需要注意的重要一点是,这段代码可以在某些计算机上工作。

请帮我一下,提前谢谢。

共有1个答案

岳卓君
2023-03-14

网络策略阻止了对SMTP服务器的请求。我联系了网络管理员,他给了我所需的权限。现在一切正常。

 类似资料:
  • 本文向大家介绍Java通过exchange协议发送邮件,包括了Java通过exchange协议发送邮件的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Java通过exchange协议发送邮件的具体代码,供大家参考,具体内容如下 pom.xml 导入包 application.properties 配置信息 代码 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊

  • 我想用Java从我的公司Outlook帐户发送邮件。但它说邮箱无法访问。我试过各种解决方案,比如更改主机名,但还是不行。错误保持不变。请对此提出任何解决方案。下面是我面临的错误片段。注意:我使用javax mail来实现这个目的。

  • 通过Java发送邮件时获取异常 例外情况是: 以下是Java代码: 我在运输方面出了差错。发送(msg);我在这里使用的JAR::smtp 1.6.0、Javax Mail 1.4.7、邮件激活

  • 我正在使用JavaMail API在J中发送电子邮件。如果我在没有代理的情况下通过网络使用它,效果很好,但我们学院使用代理服务器,这就是为什么它在学院不起作用的原因。我认为我们的大学代理服务器只支持HTTP和HTTPS代理,不支持SOCKS代理。我用过 我还试着设置 但它仍然不起作用,出现了类似这样的错误 我知道JavaMail不支持通过web代理服务器访问邮件服务器。请告诉我如何重新爱上它?或者

  • 我正在尝试通过smtp发送邮件,但它显示错误消息。我正在使用主机号578.after执行程序,它显示无法将套接字转换为TLS;嵌套异常是:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPath

  • 我有一个服务器与静态IP在我的家里,我服务我自己的网页与一个域和所有工作良好。 在我的网页,你可以通过电子邮件和密码注册。当您注册一个名为nodemailer的节点模块,从google帐户发送电子邮件时,问题是google帐户有一个发送电子邮件的限制。 所以我需要将nodemailer模块连接到我自己家里的服务器上。 我在谷歌上搜索,但没有类似的答案。 如何在NodeJS中使用后缀?? http: