gpt4 book ai didi

javax.mail.NoSuchProviderException : No provider for smtps

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:09 27 4
gpt4 key购买 nike

我正在尝试设置我的 Java 项目以便能够发送电子邮件(通过 g-mail,如果它重要的话)并且每次我尝试时都收到“javax.mail.NoSuchProviderException:没有 smtps 提供商”运行以下行(从他们的示例中复制/粘贴)。

Transport transport = session.getTransport("smtps");

我环顾四周,发现通常会抛出此问题,因为您的类路径中没有包含 mail.jar,但实际上我确实包含了 mail.jar。由于我运行的是 JDK 1.6,因此根据此处的常见问题 (http://www.oracle.com/technetwork/java/javamail/faq-135477.html#classpath),我不需要包含 activation.jar。此外,activation.jar 似乎不存在于 1.4.7 版的 javamail 中。

为了防止出现问题,我从 oracle 的网站重新下载了整个 zip,将其解压缩并添加了新的 jar(在删除旧 jar 之后),但我仍然遇到同样的错误。关于此时可能出现的问题有什么想法吗?

编辑:这是正在打印的完整堆栈跟踪:

javax.mail.NoSuchProviderException: No provider for smtps
at javax.mail.Session.getProvider(Session.java:433)
at javax.mail.Session.getTransport(Session.java:627)
at javax.mail.Session.getTransport(Session.java:608)
... my code that calls getTransport() ...
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
... more of my code ...
at java.lang.Thread.run(Thread.java:662)

最佳答案

以防万一有人犯了和我一样的错误:你必须使用小写字母才能使协议(protocol)解析生效。如果您键入 SMTP 而不是 smtp 作为协议(protocol)名称,您将得到 NoSuchProviderException。对于所有其他提供商,它很可能以相同的方式工作。

关于javax.mail.NoSuchProviderException : No provider for smtps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16861553/

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