年底了,绩效是逃不开的话题,为总结这一年来的工作情况,查看邮件是非常必要的。但是,邮件太多,如何筛选和保留成为一个问题,因此想到实现个自动统计邮件内容的工具,今天分享使用IMAP协议收取gmail邮件的实现方式。

准备环境

新建一个java项目,并从oracle官网下载javamail.jar文件,导入到项目中。

定义SMTP连接详情

首先,我们需要定义连接服务器相关的配置详情,如端口/主机名等。
在项目根目录下创建smtp.properties文件,并输入以下内容。

mail.smtp.host=smtp.gmail.com
mail.smtp.socketFactory.port=465
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.auth=true
mail.smtp.port=465

加载配置信息

定义配置信息后,我们需要使用方法加载这些信息,并创建一个邮件会话。

props.load(new FileInputStream(new File("smtp.properties")));
Session session = Session.getDefaultInstance(props, null);

连接

创建一个store(javax.mail.Store)连接邮件服务器。

Store store = session.getStore("imaps");
store.connect("smtp.gmail.com", "*************@gmail.com","your_password");

读取收件箱

定义读取gmail收件箱目录。

Folder inbox = store.getFolder("inbox");
inbox.open(Folder.READ_ONLY);

读取邮件

获取到收件箱目录后,就可以很容易的获取到邮件相关的内容了,下面是获取邮件主题的方法。

Message[] messages = inbox.getMessages();
System.out.println("------------------------------");
for (int i = 0; i < 10; i++) {System.out.println("Mail Subject:- " + messages[i].getSubject());
}

完整源码

下面是完整的源码

public class SimpleStoreMails {public static void main(String[] args) {SimpleStoreMails mail = new SimpleStoreMails();mail.read();}public void read() {Properties props = new Properties();try{props.load(new FileInputStream(new File("smtp.properties")));Session session = Session.getDefaultInstance(props, null);Store store = session.getStore("imaps");store.connect(POP3_SERVER, USER, PWD);Folder inbox = store.getFolder("inbox");inbox.open(Folder.READ_ONLY);Message[] messages = inbox.getMessages();for (int i = 0; i < inbox.getMessageCount(); i++){Message message = messages[i];Date date = message.getSentDate();System.out.println("Mail Subject:- " + message.getSubject());System.out.println("Mail Content Type:- " + message.getContentType());System.out.println("Mail Sent Date:- " + date);}inbox.close(true);store.close();}catch (Exception e){e.printStackTrace();}}
}

javamail使用IMAP协议收取gmail邮件相关推荐

  1. JAVAMail 使用imap协议分析邮件

    准备内容 这里仅以扣扣邮箱为例,首先,登录扣扣邮箱把imap协议开启,并记下授权码(这个过程,不会请百度),这个授权码是用来代替密码登陆的,注意:扣扣邮箱开启imap协议必须先设置独立密码. 下载ja ...

  2. c# 收取邮件 解析_使用c#+IMap实现收取163邮件

    最近我要做一个爬虫.这个爬虫需要如下几个步骤: 1 填写注册内容(需要邮箱注册) 2 过拖拽验证码(geetest) 3 注册成功会给邮箱发一封确认邮箱 4 点击确认邮箱中的链接 完成注册 我这里就采 ...

  3. 使用IMAP收取Gmail邮件

    使用PHP的imap系列函数处理gmail的邮件(需要PHP支持imap) /* connect to gmail */ $hostname = '{imap.gmail.com:993/imap/s ...

  4. IMAP协议定时监听接收邮件(QQ邮箱、网易邮箱都可)

    前面已介绍过SMTP协议发论文:qq邮箱,网易邮箱,smtp邮箱发邮件 本文将继续介绍如何用IMAP协议收邮件. IMAP协议:即Internet Message Access Protocol(互联 ...

  5. 【Python学习笔记】(十)邮件处理:email模块;SMTP协议(smtplib模块);POP3协议(poplib模块);IMAP协议(imaplib模块)

    电子邮件,简称电邮,是指一种由寄件人将数字信息发送给一个人或者多个人的信息交换方式. 电邮包括三个部分:消息的"信封".邮件标头.邮件内容. 电邮的格式:用户名@主机名(域名).电 ...

  6. android imap开发,企业邮箱在Android(安卓)系统手机上POP3/IMAP协议如何设置

    企业邮箱在Android(安卓)系统手机上POP3/IMAP协议如何设置 我们已经推出了自己研制的手机客户端,具备高兼容性,不需需配置,输入企业邮箱地址和密码直接登录使用.了解详情> 直接扫码下 ...

  7. 联创打印管理系统连接服务器失败,企业邮箱在Foxmail 7.2上POP3/IMAP协议设置方法...

    Foxmail 7.2 POP3/IMAP 设置方法如下: 1.在foxmail窗口右上角单击菜单入口,在菜单下选择 账户 : 注:如果为新下载安装的 Foxmail,安装后按照系统提示进行以下操作. ...

  8. 活用Koomail的IMAP协议功能同步Gmail邮件

        Gmail是Google推出的邮箱服务,现在已经成为非常流行好用的邮箱之一.我们除了通过传统的webmail方式以及使用邮件客户端的POP3协议来收发外,还可以用Gmail提供的免费Imap协 ...

  9. java imap 标记已读,JavaMail通过IMAP和POP3接收未读以及设置已读邮件

    JavaMail通过IMAP和POP3接收未读以及设置已读邮件 博客分类: javamail javamailpop3imap 使用javaMail收邮件主要有两种协议,一种是pop3,一种是imap ...

最新文章

  1. WSUS控制台由于程序异常崩溃
  2. 与客家土楼的约会(增城-河源)
  3. RocketMQ学习笔记(7)----RocketMQ的整体架构
  4. AntD 官网样例 InputRef报错原因
  5. 运维工程师打怪升级进阶之路 V2.0
  6. 物联网碰到云计算会怎么样?
  7. 收银系统 mysql数据库_某大型超市收银系统数据库成功恢复
  8. 阿里2020届校招笔试劝退题——你大爷还是你大爷
  9. 程序员or需求工程师,谁决定软件的最高水平?
  10. 工程计算软件_软件工程师的计算机基础理论知识体系
  11. Objective-C中的typedef枚举是什么?
  12. BlackBerry 9520上结合139邮箱实现Gmail邮件的短信通知
  13. R语言及Rstudio入门小建议(一)
  14. 5G/NR BWP基本概念
  15. 终于找到破坏(被锁)广联达云计价平台GCCP6.0工程文件的罪魁祸首,显示:您的工程可能受到盗版侵害……
  16. js原型继承的几种方式
  17. 绕过“请在微信客户端打开链接”如微师下载视频等。
  18. ES 查询 —— match 和 match_prase
  19. centos是arm还是amd_amd系列cpu安装linux
  20. 服务器如何预防入侵问题

热门文章

  1. 手把手教你做人脸搜索系统
  2. JavaScript:使用Xpath定位网页元素(含Iframe定位)
  3. linux 服务器 Graphics drawString 乱码
  4. 彻底关闭数据执行保护(DEP)
  5. flutter 九宫格菜单_Flutter页面开发体验
  6. python随机生成三位数字_五种方法实现python3-随机生成10位包含数字和字母的密码...
  7. Django——CBV
  8. CTS2018+1没去记APIO2018+1游记
  9. cookie的expires设置
  10. 驾驶证理论测试显示软件未激活,驾照理论测试