javax.mail.NoSuchProviderException: Invalid protocol: null 他说的你protocol是null,所以报错。 我刚才翻了一遍源码 at javax.mail.Session.getProvider(Session.java:431) at javax.mail.Session.getTransport(Session.java:650) at javax.mail.Session.getTransport(Session.java:631) at javax.mail.Session.getTransport(Session.java:617) 逆推到Session.java:617时,发现,他是从Properties中取了mail.transport.protocol的值。 你把它设置上即可: p.setProperty("mail.transport.protocol", "smtp"); Session.java:617: public Transport getTransport() throws NoSuchProviderException { return getTransport(getProperty("mail.transport.protocol")); }
他说的你protocol是null,所以报错。
我刚才翻了一遍源码
at javax.mail.Session.getProvider(Session.java:431)
at javax.mail.Session.getTransport(Session.java:650)
at javax.mail.Session.getTransport(Session.java:631)
at javax.mail.Session.getTransport(Session.java:617)
逆推到Session.java:617时,发现,他是从Properties中取了mail.transport.protocol的值。
你把它设置上即可: p.setProperty("mail.transport.protocol", "smtp");
Session.java:617:
public Transport getTransport() throws NoSuchProviderException {
return getTransport(getProperty("mail.transport.protocol"));
}
*/ /*mail.setMainServerPort("5005");//服务器端口
*/
这几句都被你注释了
然后 mainServerHost="smtp.qq.com"; 指定了