【问题标题】:Log4j2 SMTP Appender on Java 11: javax.mail or jakarta.mail?Java 11 上的 Log4j2 SMTP 附加程序:javax.mail 还是 jakarta.mail?
【发布时间】:2021-09-13 15:54:56
【问题描述】:

我正在使用 Java 11 (Corretto 11)、log4j 2.12.1 和 jakarta.mail 2.0.1。我的 log4j 配置正在使用 SMTP 附加程序,但我没有收到任何电子邮件。我确实在文件中看到了日志语句(使用文件或控制台附加程序时)。而且,当使用与 Java 8、log4j 2.12.1 和 javax.mail 1.6.2 完全相同的 log4j 配置时,我确实收到了电子邮件。我不能同时使用 javax.mail 和 jakarta.mail 因为有重叠的类(例如com.sun.mail.util.MimeUtil)。它确实适用于 javax.mail 1.6.2。

Java 11 + log4j2 + SMTP Appender 有什么建议?如果我想使用 log4j,我是否坚持使用不再维护的旧 javax.mail 1.6.2?

这可能是 Eclipse 中的一个怪癖,但是当我查看来自 log4j 2.12.1 的org.apache.logging.log4j.core.net.MimeMessageBuilder 的源时,导入显示javax.mail.*,但MimeMessage 类的javadoc 显示jakarta.mail.internet.MimeMessage

【问题讨论】:

    标签: java email log4j log4j2 java-11


    【解决方案1】:

    您可能知道,Java EE 从 Oracle 转移到 Eclipse Foundation 需要将 javax.* 命名空间(在 Java EE 8/Jakarta EE 8 中)更改为 jakarta.* 命名空间(Jakarta EE 9) .

    在所有库切换到 Jakarta EE 9 之前可能会过去很多年,并且考虑到必须同时对所有 Jakarta EE 9 技术进行切换,因此 Jakarta EE 8 实现可能会获得更新很长一段时间。

    由于 Log4j 是尚未迁移的库之一,请使用 com.sun.mail 组中的 jakarta.mail 工件,版本 1.6.x。如您所见,它仍在更新(今天的最新版本:1.6.7)。

    【讨论】:

    • 谢谢!我什至没有想到要查看 jakarta.mail 工件的 1.6.x 版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多