使用 OpenJDK 1.7.0 和 GNU JavaMail 1.1.2。
在实际的消息发送调用期间:
SMTPTransport.send(msg);
有时候是这样的:
javax.mail.NoSuchProviderException: No provider for address: rfc822
at javax.mail.Session.getTransport(Session.java:641)
at javax.mail.Transport.doSend(Transport.java:149)
at javax.mail.Transport.send(Transport.java:75)
Transport.send(msg) 产生相同的结果。
我很确定我的类路径没问题。以下是它在 JAR 任务的 build.xml 中的定义方式:
<zipfileset src="${sys}/inetlib.jar" includes="**/*.java **/*.class"/>
<zipfileset src="${sys}/gnumail-providers.jar" includes="**/*.java **/*.class"/>
<zipfileset src="${sys}/gnumail.jar" includes="**/*.java **/*.class"/>
其中 ${sys} 是 /usr/share/java。我是否必须接受它并使用 Oracle JavaMail API?