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

通过Java发送邮件时获取异常

傅啸
2023-03-14

通过Java发送邮件时获取异常

例外情况是:

Exception in thread "main" java.lang.NoSuchMethodError: 
com.sun.mail.util.LineOutputStream.<init>(Ljava/io/OutputStream;Z)V
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1648)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1906)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1134)
at javax.mail.Transport.send0(Transport.java:255)
at javax.mail.Transport.send(Transport.java:124)
at com.yodlee.SendMail.sendMail(SendMail.java:78)
at com.yodlee.SendMail.main(SendMail.java:32)

以下是Java代码:

    Properties props = new Properties();
    props.put(SMTP_HOST_KEY,SMTP_HOST);

    Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(".....",
                    "#.......");
        }
    });

    try {
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(RECIPIENT_FROM));
        message.setSubject(SUBJECT);
        message.setSentDate(new Date());
        //message.setText("Test mails111");


        MimeBodyPart messageBodyPart = new MimeBodyPart();

        messageBodyPart.setContent(data, "text/html");
        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart);
        message.setContent(multipart);
        Transport.send(message);
        System.out.println("Done");
    } catch (MessagingException e) {
        status = -1;
        throw new RuntimeException(e);
    }

我在运输方面出了差错。发送(msg);我在这里使用的JAR::smtp 1.6.0、Javax Mail 1.4.7、邮件激活

共有3个答案

公良奇
2023-03-14

我解决了这个问题:java。lang.NoSuchMethodError:“void com。太阳邮政util。LineOutputStream。(java.io.OutputStream,布尔值)'

添加到我的pom中。xml是com的依赖项。太阳使用相同版本的javax发送邮件。邮件api

<dependency>
        <groupId>javax.mail</groupId>
        <artifactId>javax.mail-api</artifactId>
        <version>1.6.2</version>
    </dependency>

    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.2</version>
    </dependency>
白子昂
2023-03-14

检查jar的版本,尝试更改一些版本,如果是“maven项目”,请检查环境依赖性。正如您所知,java环境通常会出现错误,您可能会小心。

陆栋
2023-03-14

最有可能的情况是,在类路径上有多个版本的JavaMail类。检查所有依赖项和应用程序服务器环境是否存在冲突。如果多个jar文件包含javax。邮寄。*或com。太阳邮寄。*同学们,你们有问题。

一定要修复所有这些常见的JavaMail错误,一定要使用最新版本的JavaMail。

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

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

  • 我正试图通过gmail服务器通过java代码发送邮件,但面临 以下是发送邮件的代码:-` ` 这里需要注意的重要一点是,这段代码可以在某些计算机上工作。 请帮我一下,提前谢谢。

  • 我正试图在詹金斯设置电子邮件通知 但当我点击测试配置时,我得到了下面的错误 请参考附件截图以及下面的错误 请帮帮我,我被困在这里了。 太阳安全供应商。certpath。SunCertPathBuilderException:找不到请求目标的有效证书路径 原因:sun.security.validator.验证器异常:PKIX路径构建失败 原因:javax。网ssl。SSLHandshakeExce

  • MainClass: 例外情况:

  • 嗨,我目前正在开发java应用程序,该应用程序将通过java mail Api(1.6.2)向多个收件人发送邮件,我已经根据Microsoft文档配置了SMTP。问题是代码正在使用我的个人hotmail电子邮件id,但对于公司office 365帐户,它失败了。 错误:javax.mail.身份验证失败异常:535 5.7.3身份验证不成功[PN1PR0101CA0066.INDPRD01.PRO