JavaMail API 是一个用于阅读、编写和发送电子消息的可选包(标准扩展),用来创建邮件用户代理(Mail User Agent,MUA)类型程序。

JavaMail API 需要 JavaBeans Activation Framework 来支持任意数据块的输入及相应处理。

下载后解压.zip 文件,将 mail.jar 文件和 activation.jar 文件复制到 JRE(Java 运行时环境,Java Runtime Environment)目录下的 lib/ext 目录中去。

或者,将 jar 文件添加系统到 CLASSPATH 中。

首先,需要针对各个邮箱的服务器地址等信息进行分别了解

1.网易邮箱的 POP3 与 SMTP 服务器

邮箱 POP3 服务器(端口110) SMTP 服务器(端口25)
  188.com
pop3.188.com smtp.188.com
  163.com
pop3.163.com smtp.163.com
  126.com
pop3.126.com smtp.126.com
  netease.com
pop.netease.com smtp.netease.com
  yeah.net
pop.yeah.net smtp.yeah.net

SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。

2.腾讯邮箱的 POP3 与 SMTP 服务器

邮箱 POP3服务器(端口995) SMTP服务器(端口465或587)
qq.com pop.qq.com smtp.qq.com

SMTP服务器需要身份验证。所以需要获取授权码。

具体内容:http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28

代码演示:

利用JavaMail接收邮件

// JavaMail接收邮件
// 设置邮件服务器、用户名、密码及整个应用程序中共享的其它信息
Properties props = new Properties();
props.put("mail.pop3.host", "pop.163.com");
props.put("mail.pop3.port", "110");
// 用 getInstance() 创建一个独立的 session
Session session = Session.getDefaultInstance(props);
// 连接到一个 Store,获取一个 Folder
Store store = session.getStore("pop3");
store.connect("y**********@163.com", "y*************");
// POP3 唯一可以用的文件夹是 INBOX。如果使用 IMAP,还可以用其它文件夹。
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
int size = folder.getMessageCount();
for(int i=1; i<=size; i++) {
  Message message = folder.getMessage(i);
  String from = message.getFrom()[0].toString();
  String subject = message.getSubject();
  // 用 getContent() 来获取其内容,或者用 writeTo() 将内容写入流。getContent()方法只能得到消息内容,writeTo() 的输出却包含消息头。
  // String content = (String) message.getContent();
  Date date = message.getSentDate();
  System.out.println("From: " + from);
  System.out.println("Subject: " + subject);
  // System.out.println("Content: " + content);
  System.out.println("Date: " + date);
  System.out.println("接收成功!");
}
// 读完邮件,需要关闭与 folder 和 store 的连接。
folder.close(true);
store.close();

利用JavaMail发送邮件

// JavaMail发送邮件
Properties props = System.getProperties();
props.put("mail.smtp.host", "smtp.163.com");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props, new Authenticator() {
  @Override
  protected PasswordAuthentication getPasswordAuthentication() {
    // 通过用户名和密码访问受保护的资源
    return new PasswordAuthentication("y**********@163.com", "y*************");
  }
}); MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("y**********@163.com"));
// Address address = new InternetAddress("xxx@qq.com")确定信件地址
// 需要消息显示多个 from 地址,可以使用 addFrom() 方法:Address address[] = ...;message.addFrom(address);
// 三种预定义的地址类型是:Message.RecipientType.TO、Message.RecipientType.CC、Message.RecipientType.BCC
message.addRecipient(Message.RecipientType.TO, new InternetAddress("3********@qq.com"));
// 设置主题
message.setSubject("JavaMail发送测试");
// message.setContent("Hello", "text/plain")设置内容,参数分别代表内容和 mime 类型。MIME 类型缺省为 text/plain
message.setText("JavaMail发送测试JavaMail发送测试JavaMail发送测试");
// 用协议指定的语言发送消息(通常是 SMTP)
Transport.send(message);
System.out.println("发送邮件成功!");

JavaMail API的应用的更多相关文章

  1. JavaMail API 详细分解

    在使用Spring框架的过程中,它的优势之一就是在于跟其他一些技术的整合,如JavaMail .任务调度.缓存策略等技术.今天就Java Mail详细阐述.JavaMail API是被设计为与协议无关 ...

  2. javamail模拟邮箱功能发送电子邮件-基础实战篇(javamail API电子邮件实例)

    引言: JavaMail 是一种可选的.能用于读取.编写和发送电子消息的包 JavaMail jar包下载地址:http://java.sun.com/products/javamail/downlo ...

  3. javamail模拟邮箱功能发送电子邮件-中级实战篇【新增附件发送方法】(javamail API电子邮件实例)

    引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...

  4. javamail模拟邮箱功能--邮件删除-中级实战篇【邮件标记方法】(javamail API电子邮件实例)

    前言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 本章可能是讲解javamail的最后一 ...

  5. JavaMail API 1.4.7邮件发送

    下载oracle javaMail API: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive- ...

  6. JavaMail API

    JavaMail API的核心类:会话.消息.地址.验证程序.传输,存储和文件夹.所有这些类都可以在JavaMail API即javax.mail的顶层包中找到,尽管你将频繁地发现你自己使用的子类是在 ...

  7. JavaMail API 概述

    JavaMail API提供了一种与平台无关和协议独立的框架来构建邮件和消息应用程序. JavaMail API提供了一组抽象类定义构成一个邮件系统的对象.它是阅读,撰写和发送电子信息的可选包(标准扩 ...

  8. javamail模拟邮箱功能--邮件回复-中级实战篇【邮件回复方法】(javamail API电子邮件实例)

    引言: JavaMai下载地址l jar包:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...

  9. javamail模拟邮箱功能获取邮件内容-中级实战篇【内容|附件下载方法】(javamail API电子邮件实例)

    引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...

随机推荐

  1. MFC开发小技巧总结

    1.在类向导里面可以为对话框添加方法. 2.如要添加变量,直接右击添加变量即可. 3.若对某个控件添加方法或者称之为消息处理函数,直接右击添加事件处理程序即可.  

  2. Chrome 插件 CrxMouse 去除后门优化版

    说明 CrxMouse 是一款挺不错的 Chrome 插件.仅仅是据说这个插件会在后台偷偷的上传用户的浏览数据,无论上传的内容是不是涉及隐私数据,总让人认为不放心,可是因为插件本身功能还是挺好用的,所 ...

  3. C# 中三个关键字params,Ref,out

    一. using System; using System.Collection.Generic; using System.Text; namespace ParamsRefOut { class ...

  4. 【Android应用开发详解】实现第三方授权登录、分享以及获取用户资料

      由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo.实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相 ...

  5. 37:密码截取(回文串manacher算法)

    题目描述:Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解.比如 ...

  6. detect——point_in_polygon

    /******************实现功能:判断平面任一点是否在指定多边形内********************/ #include <string> #include <v ...

  7. Spring学习十一----------Bean的配置之基于Java的容器注解@Bean

    © 版权声明:本文为博主原创文章,转载请注明出处 @Bean -@Bean标识一个用于配置和初始化一个由SpringIOC容器管理的新对象的方法,类似于XML配置文件的<bean/> -可 ...

  8. mycat可以干什么

     单纯的读写分离,此时配置最为简单,支持读写分离,主从切换 分表分库,对于超过 1000 万的表进行分片,最大支持 1000 亿的单表分片 多租户应用,每个应用一个库,但应用程序只连接 Myca ...

  9. ubuntu16.04----jdk---install----config

    1.下载jdk. 2.验证java是否安装,使用java -version命令,如下图所示说明没有安装: 3.在usr目录中创建一个jdk-8目录,如下图所示: 4.配置系统环境变量,编辑/etc/p ...

  10. org hibernate querytimeoutexception

    起因 在做Hibernate批量插入时,出现这个错误org.hibernate.QueryTimeoutException: 错误原因是表空间的容量不足,需要加大空间容量:那首先想到的是应该查询其容量 ...