为了账号安全,请及时绑定邮箱和手机立即绑定

Java Mail 找不到类 MimeMessage

Java Mail 找不到类 MimeMessage

呼唤远方 2021-10-13 10:18:54
这是类Mail的代码(里面有一个main但是原因很简单,用这种方式解决这个问题似乎很简单):import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Properties;public class Mail {    public static void main(String [] args) {    // Recipient's email ID needs to be mentioned.    String to = "abcd@gmail.com";    // Sender's email ID needs to be mentioned    String from = "mail";    String psw = "password";    // Assuming you are sending email from localhost    String host = "localhost";    // Get system properties    Properties properties = System.getProperties();    // Setup mail server    properties.setProperty("mail.smtps.host", host);    properties.setProperty("mail.user", from);    properties.setProperty("mail.password", psw);    // Get the default Session object.    Session session = Session.getDefaultInstance(properties);    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));    }  }}这是我在运行后看到的终端:Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource    at Mail.main(Mail.java:35)Caused by: java.lang.ClassNotFoundException: javax.activation.DataSourceat java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)... 1 moreProcess finished with exit code 1错误是:MimeMessage message = new MimeMessage(session);
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您要么需要告诉 JDK 9 公开包含但隐藏的 java.activation 模块,要么需要在项目中明确包含 JavaBeans Activation Framework (JAF; javax.activation) jar 文件。


通过添加--add-modules java.activation到java命令行来执行前者。


后者可以通过使用此 Maven 依赖项来完成:


<dependency>

  <groupId>com.sun.activation</groupId>

  <artifactId>javax.activation</artifactId>

  <version>1.2.0</version>

</dependency>


查看完整回答
反对 回复 2021-10-13
  • 2 回答
  • 0 关注
  • 826 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信