基于JavaMail的Java邮件发送:简单邮件发送
来源:互联网 发布:疯狂java讲义 第4版pdf 编辑:程序博客网 时间:2024/04/20 11:10
本文链接: http://blog.csdn.net/xietansheng/article/details/51673073
电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等。但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送。本文将简单介绍如果通过 Java 代码来创建电子邮件,并连接邮件服务器发送邮件。
1. 电子邮件协议
电子邮件的在网络中传输和网页一样需要遵从特定的协议,常用的电子邮件协议包括 SMTP,POP3,IMAP。其中邮件的创建和发送只需要用到 SMTP协议,所有本文也只会涉及到SMTP协议。SMTP 是 Simple Mail Transfer Protocol 的简称,即简单邮件传输协议。
2. JavaMail
我们平时通过 Java 代码打开一个 http 网页链接时,通常可以使用已经对 http 协议封装好的 HttpURLConnection 类来快速地实现。Java 官方也提供了对电子邮件协议封装的 Java 类库,就是JavaMail,但并没有包含到标准的 JDK 中,需要我们自己去 Java 或 Oracle 官网下载。
下载地址:
https://java.net/projects/javamail/pages/Home
或者
http://www.oracle.com/technetwork/java/javamail/index.html
这里我从 java.NET 网站中下载一个最新的,包含了 SMTP, IMAP, 和 POP3 协议的实现的 jar 包:
3. 创建一封简单的电子邮件
首先创建一个 Java 工程,把下载好的 javax.mail.jar 作为类库加入工程,这里不多说。
邮件创建步骤:
- 创建一个邮件对象(MimeMessage);
- 设置发件人,收件人,可选增加多个收件人,抄送人,密送人;
- 设置邮件的主题(标题);
- 设置邮件的正文(内容);
- 设置显示的发送时间;
- 保存到本地。
代码实现:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
保存的 MyEmail.eml 可以使用邮件客户端打开查看,实际上就是一堆符合SMTP协议格式的文本(内容使用base64进行了编码),也可用记事本打开,如下所示:
4. 发送电子邮件
发送邮件首先需要有一个邮箱账号和密码,本文以网易163邮箱为例,邮箱账号必须要开启 SMTP 服务,在浏览器网页登录邮箱后一般在邮箱的“设置”选项中可以开启,并记下邮箱的 SMTP 服务器地址,如下所示(其他邮箱大同小异):
代码实现:
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送(简单邮件发送)
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 迭代器模式
- BZOJ 1024 dfs
- 字符串截取
- Okgo 使用三部曲
- 通过gdal加载PostGIS矢量数据
- 基于JavaMail的Java邮件发送:简单邮件发送
- win10环境下visual studio 2015配置openGL
- php yii1.0快递100接口获取物流信息
- 产品新人必知的竞品分析5要素
- oracle一句sql生成10w行测试数据
- php之memcache,memcached
- Redis 3.2.6 Cluster部署
- Ubuntu中文输入
- codeforces 363D