第一个JavaMail程序

原创 2017年06月27日 22:05:30

一、JavaMail API的介绍

1.1 什么是JavaMail?

  • 要自己写程序发送和接收邮件,可以直接采用Socket编程连接上远程的邮件服务器,然后按照邮件协议与邮件服务器进行交互,涉及较多细节。另外,要想自己编程创建出复杂的MIME格式的邮件,是一件非常困难和麻烦的事情。
  • JavaMail 是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如SMTP、POP3、IMAP。
  • 开发人员使用JavaMail API编写邮件处理软件时,无须考虑邮件协议的底层实施细节,只要调用JavaMail开发包中相应的API类就可以了。
  • JavaMail 也提供了能够创建出各种复杂MIME格式的邮件内容的相关API。

1.2 JavaMail的体系结构与API分类


1、JavaMail API按其功能划分通常可分为如下三大类:
创建和解析邮件内容的API
:Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。 
发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。 
接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。 

2、Session类 

Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。

读java mail包中的readme.txt,了解到mail.jar中的类分为java mail API和service Provider,这就类似JDBC API和数据库驱动程序一样,不要Provider的jar包,编译程序也不会有任何问题。在写程序时,可以先故意不导入Provider包,编译完全正常,等运行时才会出现错误。

1.3 JAF简介

  • JAF(JavaBeans Activation Framework,JavaBeans激活框架)是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口。 
  • JAF的主要作用在于让Java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。对于通过JAF封装的数据,应用程序通过JAF提供的接口可以完成如下功能:访问数据源中的数据
              获知数据源的数据类型

              获知可对数据进行的各种操作

  • 用户对数据执行某种操作时,自动创建执行该操作的软件部件的实例对象
  • JavaMail API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成MIME消息中的消息体和消息类型。

1.4 编写一个JavaMail发送邮件

1、项目整体结构


2、编写发送邮件的代码

package javamail;

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 编写一个Java Mail发送邮件,
 * 使用163发送,讲师用的是sina发送的
 */
public class Demo1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		Properties props = new Properties();
		//指定sun公司官方的认证
		props.setProperty("mail.smtp.auth", "true");
		//指定使用的协议
		props.setProperty("mail.transport.protocol", "smtp");
		Session session = Session.getInstance(props);
		//设置debug调试信息
		session.setDebug(true);
		
		Message msg = new MimeMessage(session);
		msg.setSubject("这是一个测试程序...");
		msg.setText("你好!这是我的第一个JavaMail程序-->卡卡罗特");
		msg.setFrom(new InternetAddress("***********@163.com"));
		//邮件传送器
		Transport transport = session.getTransport();
		//连接新浪邮件的服务器,同时提供用户名和密码
		transport.connect("smtp.163.com", 25, "***********",
				"abc123");
		//设置要发送的邮件和接收地址 
		transport.sendMessage(msg, new Address[]
				{new InternetAddress("***********@qq.com")});
		transport.close();
	}

}

注意:上述加粗的两行中,标红的代码一定要一致才可以发送成功。


参考书籍《Java邮件开发详解

版权声明:本文为博主原创文章,未经博主允许不得转载。

第一个 Python 程序

安装完 Python 后,Windows 中:开始菜单或安装目录下就会有 IDLE(开发 Python 程序的基本 IDE - 集成开发环境)、帮助手册、模块文档等。Linux 中:只需要在命令行中输...
  • u011012932
  • u011012932
  • 2016年06月15日 16:16
  • 4382

第一个JSP程序

本文我们建立第一个JSP程序,对JSP开发有个感性的认识。首先进入Tomcat安装目录下的webapps文件夹,然后新建一个名为firstJSP的文件夹。进入该目录,用Notepad++创建一个htm...
  • a153375250
  • a153375250
  • 2016年03月12日 01:18
  • 2803

第一个Tensorflow程序

我们使用第一个Tensorflow程序类似于HelloWord
  • yaoming168
  • yaoming168
  • 2017年06月04日 11:58
  • 607

第一个MFC程序

上一次和大家在一起探讨了用VS创建
  • u012864599
  • u012864599
  • 2014年06月08日 20:04
  • 1393

第一个Hadoop程序——WordCount

通过前面两篇博客的学习,我们学习了Hadoop的伪分布式部署和完全分布式部署。这一篇文章就来介绍一下Hadoop的第一个程序WordCount。以及在运行代码的过程中遇到的问题。...
  • u013761665
  • u013761665
  • 2015年07月24日 19:22
  • 5273

JSP介绍第一个JSP程序

JSP是服务器端语言 1.JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码 2.简单的来讲,用户在浏览器中,输入网络地址h...
  • u010372981
  • u010372981
  • 2015年04月21日 09:52
  • 701

xcode编写iphone第一个程序

Xcode中iPhone iPad模拟器调整大小的方法 Xcode中调试iPad程序默认的iPad模拟器非常小,如何方法iPad模拟器的显示尺寸呢? 选中iOS模拟器,在“Window -> 缩放...
  • chenyefei
  • chenyefei
  • 2016年09月27日 13:34
  • 552

scrapy爬虫起步(1)--第一个爬虫程序

使用scrapy抓取豆瓣小组的组名1. 新建scrapy工程新建工程文件夹,命令行cd到该目录下,用下面的命令新建一个scrapy工程 scrapy startproject dmoz 新建好的...
  • felcon
  • felcon
  • 2015年06月16日 15:49
  • 893

第一个Laravel程序

昨天已经搭好了laravel的mac环境,接下来咱们就要创建第一个laravel应用程序了1. 安装Laravel(确保已经安装Composer)通过laravel安装器 首先通过composer安...
  • yuanyolanda
  • yuanyolanda
  • 2017年03月24日 12:56
  • 266

创建第一个小程序hello world!

创建小程序实例 点击开发者工具左侧导航的“编辑”,我们可以看到这个项目,已经初始化并包含了一些简单的代码文件。最关键也是必不可少的,是 app.js、app.json、app.wxss 这三个。...
  • zhangchu108
  • zhangchu108
  • 2017年04月28日 11:01
  • 333
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第一个JavaMail程序
举报原因:
原因补充:

(最多只允许输入30个字)