java mail 读取当天已读邮件
时间: 2023-07-18 19:09:31 浏览: 101
Java Mail 发送邮件
您好!要读取当天已读邮件,可以使用 Java Mail API 中的 IMAP 协议来实现。以下是示例代码:
```java
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public class ReadTodayReadEmails {
public static void main(String[] args) throws Exception {
// 设置邮件服务器参数
String host = "imap.gmail.com";
String username = "your_username";
String password = "your_password";
// 获取当天日期
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
String today = sdf.format(cal.getTime());
// 连接到邮件服务器
Properties props = new Properties();
props.setProperty("mail.store.protocol", "imaps");
props.setProperty("mail.imaps.host", host);
props.setProperty("mail.imaps.port", "993");
props.setProperty("mail.imaps.ssl.enable", "true");
Session session = Session.getDefaultInstance(props);
Store store = session.getStore();
store.connect(username, password);
// 打开收件箱
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
// 获取当天已读邮件
Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), true));
List<Message> todayReadMessages = new ArrayList<Message>();
for (Message message : messages) {
Date date = message.getSentDate();
String sentDate = sdf.format(date);
if (sentDate.equals(today)) {
todayReadMessages.add(message);
}
}
// 输出邮件内容
for (Message message : todayReadMessages) {
System.out.println("Subject: " + message.getSubject());
System.out.println("From: " + message.getFrom()[0]);
System.out.println("To: " + message.getAllRecipients()[0]);
System.out.println("Date: " + message.getSentDate());
System.out.println("Content: " + message.getContent().toString());
}
// 关闭连接
inbox.close(false);
store.close();
}
}
```
请将 `your_username` 和 `your_password` 替换为您的实际用户名和密码。另外,如果您使用的是其他邮件服务器,请修改 `host`、`mail.imaps.host` 和 `mail.imaps.port` 参数。
阅读全文