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

Intellij无法识别javax。邮件导入,但项目建设良好

赖俊
2023-03-14

我在我的项目中使用了javax.mail库。我的项目使用 - mvn 全新安装构建良好,但是当我尝试调试我的 Intellij IDE 时显示错误,它无法识别 javax.mail 导入。我已经从文件重新启动了我的IDE-

intellij IDEA未识别这些未使用的进口。我使用以下depeendency版本:-javax。activation-1.1.1和javax。邮件-1.4。

因为这个项目正在构建中,我认为问题在于一些IDE设置。如果这个问题可以解决,请告诉我。

共有1个答案

齐驰
2023-03-14

试试这个maven依赖项:

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4</version>
    <scope>provided</scope> <!-- add this only if code will run in a java container (i.e. tomcat, etc)-->
</dependency>

您还应该看到“外部库”下的邮件类-

您还可以使用java邮件依赖关系的更新版本,如1.4.7或1.5.0-b01

最新版本(如@Mark老天所指出的)是1.6.3,maven坐标已更改为jakarta:

    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>jakarta.mail</artifactId>
        <version>1.6.3</version>
    </dependency>

基于您的代码,我创建了一个只有两个文件的简化项目版本;pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test</groupId>
    <artifactId>message-test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
    </dependencies>
</project>

还有SendMail.java

package com.test;

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.io.PrintWriter;
import java.io.StringWriter;
import java.util.Properties;

public class SendMail {
    public static void main(String[] args) {
        sendMail(new Exception("Problem with cable"));
    }

    public static void sendMail(Exception exception) {
        String to = "destination@test.com";
        String from = "sender@test.com";
        String host = "smtp.test.com";
        Properties properties = System.getProperties();
        properties.setProperty("mail.smtp.host", host);
        Session session = Session.getDefaultInstance(properties);
        try {
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject("Trade-processor instance shutdown!");
            message.setText(getExceptionMessage(exception));
            Transport.send(message);
        } catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }

    private static String getExceptionMessage(Exception e) {
        StringWriter sw = new StringWriter();
        e.printStackTrace(new PrintWriter(sw));
        return sw.toString();
    }
}
  • 确保您的“java”源文件夹标记为源(右键单击它并选择“将目录标记为”-
 类似资料:
  • 我已将IntelliJ从CE 2017.2升级到CE 2017.3版。5,现在我无法构建我的sbt项目。构建在第一步就被卡住了: 我已经删除了。idea目录和目录。我从命令行生成了一个sbt,这很有效。然后我再次启动IntelliJ并尝试导入作为一个项目。我也已注销/登录。这样做了好几次。导入过程永远不会超过此步骤。 我在防火墙后面工作,但是我已经检查了我的代理设置,它们是正确的,并且与以前的版本

  • “未解析的引用'my_app2'” 这是为什么?我的项目的目录结构与推荐的布局相匹配,它运行起来没有错误,只是Pycharm的魔力不想在它上面工作。 似乎与这个问题有关:在django项目中导入应用程序 编辑: 项目结构:

  • 我想使用JavaFX作为我的游戏的开始屏幕。 然而,由于某些原因,导入的“javafx”似乎无法识别。 起初,我(出于某种奇怪的原因)认为我需要e(fx)clipse,但是我成功安装了它,它并没有解决问题。我在互联网上没有找到其他可以解决这个问题的东西。 我需要导入javafx作为库还是什么?如果是,在哪里? 谢谢

  • null 附注:Maven-Build是成功的。因此,Maven正在识别存储库中的包。

  • 我正在使用Android studio。我试图导入javax。摆动。* 的登录页面,所以我试图写句子导入这是导入javax。摆动。*;。 但什么都没发生,一句话让进口绝望。 你能教我如何解决这个问题吗?