java接收邮件先后顺序_JavaMail获取邮件列表时对时间进行排序

这篇博客介绍了如何在Java中使用JavaMail API获取邮件服务器上的邮件,并对邮件接收时间进行排序。通过插入排序算法,将包含日期的邮件字符串处理成Date对象,然后依据日期进行升序排列。
摘要由CSDN通过智能技术生成

实际业务上是这样是,通过读取邮件服务器,并获取邮件的标题服务器接收到的时间。获取到的信息是例如:[(AAA于AAA)是我用来分隔的]

邮件1AAA于AAA2006-07-05 20:21:51

邮件2AAA于AAA2006-03-01 08:21:01

邮件3AAA于AAA2003-05-14 20:06:51

邮件4AAA于AAA2006-03-01 23:21:31

邮件5AAA于AAA2005-03-03 20:01:51

邮件6AAA于AAA2006-03-01 16:21:21

邮件7AAA于AAA2001-07-21 20:51:11

邮件8AAA于AAA2000-03-01 10:21:51

将这些记录放在ArrayList中,以下就对ArrayList进行排序。具体的算法说明我就不介绍了

不懂插入排序的朋友去看数据结构吧。

/**

* 方法对邮件的排序使用的排序算法为插入排序法

*

* **/

private ArrayList sort(ArrayList al)

{

ArrayList NewAl=al;

int in,out;

for (out=1;out

{

String temp=(String)NewAl.get(out);

in=out;

//精华部份

while(in>0 && this.getDateByString((String)NewAl.get(in-1)).before(getDateByString(temp)))

{

NewAl.set(in,NewAl.get(in-1));

--in;

}

NewAl.set(in,temp);

}

return NewAl;

}

/**

* 方法用于折取并返回时间

*

* **/

private Date getDateByString(String str)

{

Date date=null;

try

{

String listString="";

listString=str.split("AAA于AAA")[1];

DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

date=f.parse(ListString);

}

catch(Exception ex)

{

ex.printStackTrace();

}

return date;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaMailJava 的一个邮件处理库,可以用它来发送和接收邮件。以下是使用 JavaMail 获取邮件源码的示例代码: ```java import java.util.Properties; import javax.mail.Folder; import javax.mail.Message; import javax.mail.Session; import javax.mail.Store; import javax.mail.internet.MimeMessage; public class GetEmailSourceCode { public static void main(String[] args) throws Exception { // 邮箱登录信息 String host = "imap.xxx.com"; String username = "your_email@xxx.com"; String password = "your_password"; // 连接邮件服务器 Properties props = new Properties(); props.setProperty("mail.store.protocol", "imap"); props.setProperty("mail.imap.host", host); Session session = Session.getInstance(props); Store store = session.getStore("imap"); store.connect(host, username, password); // 获取收件箱 Folder inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); // 获取最新的一封邮件 Message message = inbox.getMessage(inbox.getMessageCount()); // 获取邮件源码 MimeMessage mimeMessage = (MimeMessage) message; String sourceCode = mimeMessage.getContent().toString(); System.out.println(sourceCode); // 关闭连接 inbox.close(false); store.close(); } } ``` 在代码中,我们首先定义了邮件服务器的登录信息,包括主机名、用户名和密码。然后,我们使用 JavaMail 的 `Properties` 类来设置邮件协议和主机名等参数,并使用 `Session.getInstance()` 方法创建一个邮件会话对象。接着,我们使用 `store.connect()` 方法连接到邮件服务器。 然后,我们通过 `store.getFolder()` 方法获取收件箱,并使用 `inbox.open()` 方法打开它。接下来,我们调用 `inbox.getMessage()` 方法获取最新的一封邮件,并将其转换为 `MimeMessage` 对象。最后,我们可以通过调用 `mimeMessage.getContent()` 方法获取邮件源码。 最后,我们关闭连接,包括收件箱和存储对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值