最近OA集成邮箱系统,需要将邮箱的未读邮件数和邮件总数读取出来,下面记录一下。
不多说了,直接上代码了:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;
import javax.mail.Flags.Flag;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeUtility;
import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.IMAPMessage;
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
redMail();
}
}, 1000,1000*60);//延迟1000毫秒开始第一次执行,60*1000毫秒执行一次
}
public static void redMail() {
System.out.println("Hello World!");
// 准备连接服务器的会话信息
Properties props = new Properties();
props.setProperty("mail.store.protocol", "imap");
props.setProperty("mail.imap.host", "imap.126");
props.setProperty("mail.imap.port", "143");//根据邮件服务器情况设定
//props.setProperty("mail.able", "true");
// 创建Session实例对象
Session session = Instance(props);
try {
// 创建IMAP协议的Store对象
Store store = Store("imap");
// 连接邮件服务器
// 获得收件箱
Folder folder = (Folder("INBOX");
// 以读写模式打开收件箱
folder.open(Folder.READ_WRITE);
// 获得收件箱的邮件列表
Message[] messages = Messages();
// 打印不同状态的邮件数量
System.out.println("收件箱中共" + messages.length + "封邮件!");
System.out.println("收件箱中共" + UnreadMessageCount() + "封未读邮件!");
System.out.println("收件箱中共" + NewMessageCount() + "封新邮件!");
System.out.println("收件箱中共" + DeletedMessageCount() + "封已删除邮件!");
folder.close(false);
store.close();
}catch (Exception e){
System.out.println("testEx, catch exception"StackTrace());
//throw e;
}
}
}
最后结果:
JAVAMail功能强大,可以读取并解析邮件。详细API:JAVAMail API
本文发布于:2024-02-05 06:36:18,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170726424063925.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |