gpt4 book ai didi

java - 使用 SMTP 和 javax.mail 时出现问题

转载 作者:行者123 更新时间:2023-11-29 04:48:52 26 4
gpt4 key购买 nike

我在我的 sbt 构建文件中使用了以下内容(构建文件中提到了版本):

  "javax.mail" % "javax.mail-api" % "1.5.5",
"javax.mail" % "mail" % "1.4.7",

我可以在一台计算机上运行运行以下代码的应用程序,但不能在另一台计算机上运行。我试过清除 ivy 缓存并重新加载 javax 邮件包,但这没有帮助。知道我可能做错了什么吗?

final Transport transport = session.getTransport(prop.getProperty("mail.smtp.protocol"));
transport.connect(prop.getProperty("smtp.username"), "");

正在使用的属性不为空,并且正在一台计算机上本地使用(以及我遇到问题的同一台计算机上的另一个进程 - 该进程不再在该计算机上运行并且不应打开运输连接)。

异常

java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream.<init>(Ljava/io/InputStream;Lcom/sun/mail/util/MailLogger;)V
at com.sun.mail.smtp.SMTPTransport.initStreams(SMTPTransport.java:2014)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1936)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:291)
at javax.mail.Service.connect(Service.java:172)
at javax.mail.Service.connect(Service.java:192)

com.sun.mail.smtp.SMTPTransport v1.4.7

private void More ...initStreams() throws IOException {
2011 boolean quote = PropUtil.getBooleanSessionProperty(session,
2012 "mail.debug.quote", false);
2013
2014 traceInput =
2015 new TraceInputStream(serverSocket.getInputStream(), traceLogger);

关于我应该如何解决这个问题有什么想法吗?我试过在调试中运行 session :

session.setDebug(true);

我认为这不是防火墙问题,因为我可以使用相同的 SMTP 配置(主机/端口/凭据)运行另一个进程,并且能够毫无异常(exception)地进行连接。

最佳答案

该问题是由构建文件中的传递依赖性引起的(另一个依赖性正在为应用程序提取旧版本的 javax.mail)。排除传递依赖(使用 sbt 中的排除规则)应该可以解决问题。

关于java - 使用 SMTP 和 javax.mail 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36184705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com