简体   繁体   English

通过Java发送邮件时出现异常

[英]Getting exception while sending mail through Java

Getting exception while sending mail through Java通过Java发送邮件时出现异常

exception is::例外是::

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)

Here is the Java code::这是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);
    }

I am getting error at Transport.send(msg);我在 Transport.send(msg) 处遇到错误; Jars i am using here:: smtp 1.6.0, Javax Mail 1.4.7 , mailactivation我在这里使用的罐子:: smtp 1.6.0, Javax Mail 1.4.7 , mailactivation

Most likely you have multiple versions of the JavaMail classes on your class path.很可能您的类路径上有多个版本的 JavaMail 类。 Check all your dependencies and your application server environment for conflicts.检查所有依赖项和应用程序服务器环境是否存在冲突。 If more than one jar file contains the javax.mail.* or com.sun.mail.* classes, you have a problem.如果多个 jar 文件包含 javax.mail.* 或 com.sun.mail.* 类,那么您就有问题了。

And be sure to fix all these common JavaMail mistakes , and definitely be sure to use the latest version of JavaMail .并且一定要修复所有这些常见的 JavaMail 错误,并且一定要确保使用最新版本的 JavaMail

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

I fix the issue: java.lang.NoSuchMethodError: 'void com.sun.mail.util.LineOutputStream.(java.io.OutputStream, boolean)'我解决了这个问题: java.lang.NoSuchMethodError: 'void com.sun.mail.util.LineOutputStream.(java.io.OutputStream, boolean)'

Added in my pom.xml the dependencies com.sun.mail with same version of the javax.mail-api在我的 pom.xml 中添加了与 javax.mail-api 相同版本的依赖项 com.sun.mail

<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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM