Eclipse 3.0简介和插件开发示例 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-23
String getMailInfo(MailConfig mc)
{
//最终输出的邮件信息
String mailInfo="";
//每个邮箱服务器上的Store和Folder对象
Store store=null;
Folder folder=null;
try
{
Properties props = System.getProperties();
//与邮件服务器生成一个Session
Session session = Session.getDefaultInstance
( props,null);
//给出服务器,用户名,密码连接服务器
store = session.getStore("pop3");
store.connect(mc.getPopServer(), mc.getPopUser(),mc.getPopPassword());
//取得默认的邮件Folder
folder = store.getDefaultFolder();
if (folder == null)
throw new Exception("No default folder");
//取得收件箱
folder = folder.getFolder("INBOX");
if (folder == null)
throw new Exception("No POP3 INBOX");
//以只读方式打开收件箱
folder.open(Folder.READ_ONLY);
//获取所有新邮件并处理
Message[] msgs = folder.getMessages();
for (int i = 0; i < msgs.length; i++)
{
Message message= msgs[i];
//取得每封邮件的信息,
需要引用MailConfig对象进行关键字过滤
mailInfo = mailInfo+ getMessageInfo
( message,mc);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
//安全的关闭邮件服务器资源
try
{
if (folder!=null) folder.close(true);
if (store!=null) store.close();
}
catch (Exception ex2)
{ex2.printStackTrace();}
}
return mailInfo;
}
/**
* 得到一封邮件的信息,
需要根据MailConfig过滤
* @param mailInfo
* @param message
* @return 邮件信息
* @throws MessagingException
* @throws IOException
*/
private String getMessageInfo
( final Message message ,final MailConfig mc)
throws MessagingException,
IOException
{
//返回的改邮件信息
String mailInfo="";
String from=((InternetAddress)
message.getFrom()[0]).getPersonal();
if (from==null)
from=((InternetAddress)
message.getFrom()[0]).getAddress();
String subject=message.getSubject();
//如果满足过滤信息则显示,否则返回空
if(isElementinString(from,mc.getStrFrom())
||isElementinString
(subject,mc.getStrSubject()) )
{
mailInfo=mailInfo+"发件人 :
"+from+"\n";
mailInfo=mailInfo+"邮件主题 :
"+subject+"\n";
mailInfo=mailInfo+"发送时间 :
"+message.getSentDate() +"\n";
//如果显示内容,则打印内容
if(mc.isViewContent)
mailInfo=mailInfo+message.getContent()
+"\n";
mailInfo=mailInfo
+"------------------------------------\n";
}
return mailInfo;
}
private JTextPane getJTextPane()
{
if (jTextPane == null)
{
jTextPane = new JTextPane();
}
return jTextPane;
}
/**
* 判断目标关键字数组中是否有指定的字符串,
进行过滤
* @param targetStr :
* @param keys :
* @return 如果有,返回true,
否则返回false
*/
private boolean isElementinString
(String targetStr,String [] keys)
{
//没指定过滤条件,显示所有
if (keys==null)
return true;
//指定字符串为空,直接返回false
if (targetStr==null)
return false;
for(int i=0;i<keys.length ;i++)
{
if (targetStr.indexOf(keys[i])>-1)
return true;
}
return false;
}
}
// @jve:decl-index=0:visual-constraint="10,
10"--说明,这是Visual Editor添加的控制信息
以上代码的注释已经保证你能够看清楚,这里就不加累述,有兴趣的可以自己试 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Eclipse 3.0简介和插件开发示例 - 编程入门网的所有评论