public static voidmain(String args[]) {

Properties props= new Properties(); //参数配置

props.setProperty("mail.transport.protocol", "smtp"); //使用的协议(JavaMail规范要求)

props.setProperty("mail.smtp.host", "smtp.exmail.qq.com"); //发件人的邮箱的SMTP服务器地址

props.setProperty("mail.smtp.auth", "true"); //需要请求认证//PS:某些邮箱服务器要求SMTP连接需要使用SSL安全认证(为了提高安全性,邮箱支持SSL连接,也可以自己开启),//如果无法连接邮件服务器,仔细查看控制台打印的 log,如果有有类似"连接失败,要求 SSL安全连接"等错误,//开启 SSL安全连接//SMTP服务器的端口(非 SSL连接的端口一般默认为 25,可以不添加,如果开启了SSL连接,//需要改为对应邮箱的SMTP服务器的端口,具体可查看对应邮箱服务的帮助,//QQ邮箱的SMTP(SLL)端口为465或587

final String smtpPort = "465";

props.setProperty("mail.smtp.port", smtpPort);

props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

props.setProperty("mail.smtp.socketFactory.fallback", "false");

props.setProperty("mail.smtp.socketFactory.port", smtpPort);

Session session=Session.getDefaultInstance(props);

session.setDebug(false);try{

Store store= session.getStore("imap");

store.connect("imap.exmail.qq.com", "it01@tofba.com", "*****");//change the user and password accordingly

Folder folder = store.getFolder("inbox");if (!folder.exists()) {

System.out.println("inbox not found");

System.exit(0);

}

folder.open(Folder.READ_ONLY);

Message[] messages=folder.getMessages();if (messages == null || messages.length <= 0) {

System.out.println("this inbox no messages");

System.exit(0);

}for(Message message : messages) {

String subject=message.getSubject();if(StringUtils.isNotBlank(subject)) {

System.out.println("subject:" +subject);

}/** 解析邮件内容*/Object content=message.getContent();if (null !=content) {if (content instanceofMimeMultipart) {

MimeMultipart multipart=(MimeMultipart)content;

parseMultipart(multipart);

}

}

}

}catch(Exception e) {

e.printStackTrace();

}

}/*** 对复杂邮件的解析

*

*@parammultipart

*@throwsMessagingException

*@throwsIOException*/

public static void parseMultipart(Multipart multipart) throwsMessagingException, IOException {int count =multipart.getCount();for (int idx = 0; idx < count; idx++) {

BodyPart bodyPart=multipart.getBodyPart(idx);

System.out.println(bodyPart.getContentType());if (bodyPart.isMimeType("text/plain")) {

System.out.println(bodyPart.getContent());

}else if (bodyPart.isMimeType("text/html")) {

System.out.println(bodyPart.getContent());

}else if (bodyPart.isMimeType("multipart/*")) {

Multipart mpart=(Multipart)bodyPart.getContent();

parseMultipart(mpart);

}else if (bodyPart.isMimeType("application/octet-stream")) {

String disposition=bodyPart.getDisposition();

System.out.println(disposition);if (StringUtils.isNotBlank(disposition) &&disposition.equalsIgnoreCase(BodyPart.ATTACHMENT)) {

String fileName=bodyPart.getFileName();

InputStream is=bodyPart.getInputStream();

copy(is,new FileOutputStream("D:\\tofba\\email\\" +fileName));

}

}

}

}/*** 文件拷贝,在用户进行附件下载的时候,可以把附件的InputStream传给用户进行下载

*

*@paramis

*@paramos

*@throwsIOException*/

public static voidcopy(InputStream is, OutputStream os)throwsIOException {byte[] bytes = new byte[1024];int len = 0;while ((len = is.read(bytes)) != -1) {

os.write(bytes,0, len);

}if (os != null)

os.close();if (is != null)

is.close();

}

java mail 已发送_JavaMail获取已发送邮件相关推荐

  1. Java Mail 邮件发送(一):入门Demo

    本文首发于简书,Java Mail 邮件发送(一):Demo 上周公司的项目要求开发邮件发送功能.自己在网上跟着教程边学边做了一下午,现在基本开发完成了.由于一个同事也想看下该怎么写,顺便学习下.所以 ...

  2. Java mail模板发送高级邮件(二)

    Java mail模板发送高级邮件 一.见贤思齐焉   我们之前自己发的邮件,大家又没有感觉比较丑呢???毫无美感可言,只有空洞的文字,甚至连基础的排版都没有.如果这是给女娃表白的邮件,那我只能陪你一 ...

  3. java mail 已发送_Javamail新建邮件后,怎么保存进已发送或草稿箱?

    public void sendMail(String subject, String from, List to, List cc, List bcc, String bodyText, List  ...

  4. foxmail邮件已发送成功 但是已发送邮件里面却没有怎么回事?foxmial已发送邮件里面邮件消失问题的解决办法?foxmail发送邮件突然已发送邮箱里面找不到记录了

    有个群友问杨老师,设计的时候用foxmail发送邮件突然已发送邮箱里面找不到记录了,大家可以先看看下面的集中办法是否有用 一.选择帐户--右键---属性---发送邮件---邮件发出后转移到" ...

  5. 基于java mail实现简单的QQ邮箱发送邮件

    刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...

  6. java 163邮件发送 ssl协议失败_java发送邮件遇到的问题

    今天尝试用java.mail.jar来实现Java程序发送邮件的功能,遇到一些问题: 一.当使用QQ邮箱向网易邮箱发邮件时: 问题1:530错误,需要建立安全连接,报错如下: javax.mail.A ...

  7. java mail 邮箱发送_Java Mail 发送邮件

    什么是 SMTP 协议 SMTP或简单的邮件传输协议,是一种将电子邮件从一台服务器发送到另一台服务器的快速简便的方法.通过 SendGrid 等第三方服务商提供的SMTP服务,我们可以通过第三方服务器 ...

  8. java mail 抄送多用户_javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)...

    先看源码,再来理解,可以直接使用! JavaMailWithAttachment.java: private MimeMessage message; private Session session; ...

  9. java mail 是什么_JavaMail是什么意思

    1. Javamail realization, we can download directly to their works Copy Lane's it. Javamail功能实现,大家可以直接 ...

最新文章

  1. xcode 中无法进行虚拟机调试_在软件部署中使用 strace 进行调试
  2. vue中获取url参数
  3. python selenium webdriver方法封装(find_element_by)
  4. 整理一些完全免费开放的API接口
  5. 对于SQL注入的理解
  6. MongoDB常用操作命令大全
  7. Flume中的flume-env.sh和log4j.properties配置调整建议(图文详解)
  8. Matlab-基于模型不确定补偿的RBF网络机器人自适应控制仿真
  9. redhat官方文档下载方法
  10. 服装尺寸 html,女装标准尺码对照表,服装尺寸对照表,衣服尺码对照表
  11. discuz wooyun-2010-080723
  12. FINN(三)BNN在FPGA上的准确性和峰值性能
  13. 每天只需要花10分钟,在西瓜头条,不用拍摄靠声音挣300
  14. vins-mono(5)vin_mono数据集测试
  15. 人在江湖,以“核”为贵
  16. 文明重启哪个服务器最多,文明重启攻略 新手快速霸服技巧分享[多图]
  17. matlab 离群值去除方法,数据清洗中异常值(离群值)的判别和处理方法
  18. 群环域,理想商环,原根复习
  19. mysql 在指定的dsn中_指定的DSN包含驱动程序和应用程序之间的体系结构不匹配。 JAVA...
  20. linux 命令行别名,bash命令行实用的别名-alias命令

热门文章

  1. filter 灰度处理:公祭日,一行代码让页面变成黑白色调
  2. Eclipse 答疑:如何使用 Eclipse 进行断点(Breakpoints)调试?
  3. 《软件需求分析(第二版)》第 15 章——变更管理 重点部分总结
  4. C语言/C++编程的起源与能力学习
  5. codeforces Gargari and Permutations(DAG+BFS)
  6. android贝塞尔曲线多点,Canvas 贝塞尔曲线的多点波动
  7. mysql key_len_浅谈mysql explain中key_len的计算方法
  8. react同步请求_React中setState同步更新策略
  9. HDL的综合和c语言的编译区别,C语言与verilog 的区别及相互转化
  10. java io中断_JDK源码阅读:InterruptibleChannel 与可中断 IO