发邮件给gmail,javamail发送邮件
最近在写邮件接收谷歌邮箱邮件的开发工具插件,发现一个问题。
下面是连接邮件账户与接收邮件的代码片断:
/**
*连接到邮箱帐户.
* @ paramuserNameusername用户名用户名
* @ paramuserPassworduserpassword用户密码用户密码
*@throwsException
*/
privatesticvoidconnect(string username,StringuserPassword)
抛出异常{
安全。添加提供程序(新的com。星期日网。SSL。内部。SSL。provider());
finalStringSSL _ FACTORY= javax。网。SSL。sslsocketfactory ;
properties props=system。获取属性();
道具。设置属性( mail。pop 3。插座厂。class 、SSL _ FACTORY);
道具。设置属性( mail。pop 3。插座厂。回退, false );
道具。设置属性( mail。pop 3。端口, 995 );
道具。设置属性( mail。pop 3。插座厂。端口, 995 );
道具。设置属性( mail。IMAP。插座厂。class 、SSL _ FACTORY);
道具。设置属性( mail。IMAP。插座厂。回退, false );
道具。设置属性( mail。IMAP。端口, 993 );
道具。设置属性( mail。IMAP。插座厂。端口, 993 );
会话会话=会话。getdefaultinstance(props,null);
会话。设置调试(真);//setdebug
//URLNameurln=新的urlname( pop3s , pop.gmail.com ,995,null,
//用户名,用户密码);
URLNameurln=newURLName(imap , imap.gmail.com ,993,null,用户名,
用户密码);
商店=会话。getstore(urln);
商店。connect();
}
/**
*Retieveallnewmessages .
* @ paramuserNameusername用户名用户名
* @ paramuserPassworduserpassword用户密码用户密码
*@returnallnewmessages
*@throwsException
*/
public message[]获取新邮件(string username,StringuserPassword)
抛出异常{
如果(!store.isConnected()){
连接(用户名,用户密码);
}
folderinbox=store。获取文件夹(“收件箱”);
inbox.open(文件夹。只读);
FetchProfileprofile=newFetchProfile();
profile.add(FetchProfile .项目。信封);
如果(收件箱。getunreadmessagecount()0){
intfetchCount=inbox。getmessagecount()-收件箱。getunreadmessagecount();
if(fetchCount==0){
返回收件箱。获取消息();
}
消息[]消息=收件箱。获取消息(1,2);
返回消息;
}否则{
系统。出去。println(没有新邮件!);
thrownewRuntimeException(没有新邮件!);
}
}
使用POP3/POP3s连接后统计出来的邮件数目都是不对的。而使用因特网邮件访问协议统计的就正确了。很郁闷。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。