在线查询解析邮件接收的邮件

在线查询解析邮件接收的邮件

依赖

<dependency>
 <groupId>javax.activation</groupId>
 <artifactId>activation</artifactId>
 <version>1.1</version>
</dependency>
<dependency>
 <groupId>javax.mail</groupId>
 <artifactId>mail</artifactId>
 <version>1.4</version>
</dependency>

代码实现


import javax.mail.*;
import javax.mail.Flags.Flag;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

import org.apache.commons.httpclient.util.DateUtil;

import com.alibaba.fastjson.JSON;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

public class RecipientMailPOP3 {

	final static String USER = "bellus"; // 用户名
	final static String PASSWORD = "AAAAaaaa1111"; // 密码
	public final static String MAIL_SERVER_HOST = "MAIL-SRV.local"; // 邮箱服务器
	public final static String TYPE_HTML = "text/html;charset=UTF-8"; // 文本内容类型
	public final static String MAIL_FROM = "[email protected]"; // 发件人
	public final static String MAIL_TO = "[email protected]"; // 收件人
	public final static String MAIL_CC = "[email protected]"; // 抄送人
	public final static String MAIL_BCC = "[email protected]"; // 密送人

	public static void main(String[] args) throws Exception {
		// 创建一个有具体连接信息的Properties对象
		Properties prop = new Properties();
		prop.setProperty("mail.debug", "false");
		prop.setProperty("mail.store.protocol", "pop3");
		prop.setProperty("mail.pop3.host", MAIL_SERVER_HOST);
		// 1、创建session
		Session session = Session.getInstance(prop);
		// 2、通过session得到Store对象
		Store store = session.getStore();
		// 3、连上邮件服务器
		store.connect(MAIL_SERVER_HOST, USER, PASSWORD);
		// 4、获得邮箱内的邮件夹
		Folder folder = store.getFolder("INBOX");
		
//		checkNewMessage(folder);

		store.close();
		
	}

	private static void checkNewMessage(Folder folder) throws MessagingException, InterruptedException {

		
		String formatDate = DateUtil.formatDate(new Date());
		int i = 0;
		while (i < 1000) {
			
			folder.open(Folder.READ_ONLY);
			int unreadMessageCount = folder.getUnreadMessageCount();
			System.out.println("检查未读邮件有 " + unreadMessageCount + " 封" + "时间 " + formatDate);
			
			int newMessageCount = folder.getNewMessageCount();
			System.out.println("检查新邮件有 " + newMessageCount + " 封" + "时间 " + formatDate);

			int messageCount = folder.getMessageCount();
			System.out.println("检查所有邮件有 " + messageCount + " 封" + "时间 " + formatDate);

			Message[] messages = folder.getMessages(messageCount - newMessageCount - 1, messageCount);

			prentMessage(messages);
			
			// 5、关闭
			folder.close(false);
			++i;
			Thread.sleep(10000);

		}

	}

	public static void prentMessage(Message[] messages) throws MessagingException {
		int length = messages.length;

		for (int i = 0; i < length; i++) {

			String subject = messages[i].getSubject();
			String from = JSON.toJSONString( messages[i].getFrom());
			Flags flags = messages[i].getFlags();
			
			messages[i].setFlag(Flag.SEEN, true);
			System.err.println("一共邮件" + length + "封,   第 " + (i + 1) + "封邮件["+messages[i].getMessageNumber()+"]的主题:" + subject);
			System.err.println("一共邮件" + length + "封,   第 " + (i + 1) + "封邮件的发件人地址:" + from);
			System.out.println(flags.equals(Flags.Flag.SEEN));
		}
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值