Jun*_*ter 9 java jar jakarta-mail
我正在尝试设置我的Java项目以便能够发送电子邮件(通过g-mail,如果它很重要)并且每次我尝试运行时都会收到"javax.mail.NoSuchProviderException:没有smtps的提供者"以下行(从他们的例子中复制/粘贴).
Transport transport = session.getTransport("smtps");
Run Code Online (Sandbox Code Playgroud)
我环顾四周,发现这通常被抛出,因为你没有在你的类路径中包含mail.jar,但事实上我确实包含了mail.jar.由于我运行的是JDK 1.6,因此我不需要根据FAQ(http://www.oracle.com/technetwork/java/javamail/faq-135477.html#classpath)包含activation.jar .此外,activation.jar似乎不存在于javamail的1.4.7版本中.
为了防止出现问题,我从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)
Run Code Online (Sandbox Code Playgroud)
小智 8
当您使用 Mail API 时,请确保您希望使用哪种协议?在这种情况下,您的 eclipse 项目缺少 smtp.jar。
邮件 api 中有几个用于不同协议的 jars。例如:dsn.jar、gimap.jar、imap.jar、mailapi.jar、pop3.jar、smtp.jar
事实证明,问题是mail.jar的过时版本包含在我引用的项目中,并且在更新mail.jar的副本时,问题已得到解决.
为了将来参考,有没有办法记录或提供这种jar冲突的可见性?
万一有人犯了与我相同的错误:你必须使用小写字母才能使协议解析起作用.如果您键入SMTP协议名称而不是smtp您将获得NoSuchProviderException.对于所有其他提供商,它很可能以相同的方式工作.
| 归档时间: |
|
| 查看次数: |
48209 次 |
| 最近记录: |