我正在尝试将我的 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 。此外,1.4.7 版的 javamail 中似乎不存在activation.jar。
以防万一有些东西损坏了,我从 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)