Fork me on GitHub

Java Mail

其实这篇文章我在CSDN上发表过,今天就把它再整理一下。

今天教大家如何通过java发送邮件,十分的简单易懂,而且能够马上上手。

首先,教大家的方法底层依赖的是javamail,需要的jar包是mail.jar、activation.jar。jar包我会放在百度云盘中方便大家下载。云盘地址:http://pan.baidu.com/s/1o63WyEI

接下来我会写一个测试案例,来实现邮件的发送;主要是3个步骤,每个步骤一行代码,完全能在1分钟内理解,实现。

1.登录邮件服务器

MailUtils.createSession(服务器地址,登录名,密码);

2.创建邮件对象

发件人

收件人

主题

正文

3.发送

需要第一步得到的session,和第二步的邮件对象

整个发送邮件的过程,只需要简单的几句代码就能完成,而且步骤也是十分的简介。闲话不多说,马上贴上我的测试代码,大家可以看一看,然后亲自操刀试一试!

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
package cn.itcast.test;
import java.io.IOException;
import javax.mail.MessagingException;
import javax.mail.Session;
import org.junit.Test;
import cn.itcast.mail.Mail;
import cn.itcast.mail.MailUtils;
public class MailUtilsTest {
@Test
public void send() throws MessagingException, IOException{
/*
* smtp是发邮件的一个协议,和http类似,是一种格式。
* 我要连接的是发邮件的服务器,所以createSession第一个参数是smtp.163.com。
* 第二个参数是用户名,
* 注意,不要带上@后面的东西,如果你的邮箱是test@163.com,这里只需要写test。
* 第三个参数是你邮箱的密码。
*/
Session session = MailUtils.createSession("smtp.163.com", "username", "password");
/*
* 这里的第一个参数是发件人,第二个参数是收件人,
* 第三个参数是主题,第四个参数是正文。
* 这里正文我给它加了一个超链接,
* 这样的话邮件发送过去,点击正文的内容就会自动跳到CSDN的网站上了
*/
Mail mail = new Mail("username@163.com","accept@126.com",
"测试邮件一封","<a href='http://blog.csdn.net/'>CSDN欢迎您!</a>");
//到这一步就能发送邮件了,但是前提是要能上网
MailUtils.send(session, mail);
}
}

快去邮箱查看你的成果吧!到这里整个教程就结束了,真的只需要一分钟吧?

通过java发送邮件能够给予我们很多便利之处,也算是一个新的知识点的总结。

之前有人看了我这篇文章后曾经问过我,他的邮箱的账户和密码都是对的,但是运行程序的时候却失败了,也不是网的原因。后来我找到了原因。因为这里163的服务器是smtp.163.com,邮箱需要支持smtp服务。

以163邮箱为例:登录你的邮箱,点击设置的POP3/SMTP/IMAP,

开启SMTP服务

之前的朋友运行失败的原因是邮箱未开启smtp服务。同样其他的邮箱也是一样的道理。

「真诚赞赏,手留余香」