利用MailUtils发送邮件
MailUtils底层使用了javamail, 所以必须得到jar包为mail.jar 、activation.jar
百度云链接:链接:https://pan.baidu.com/s/1gGWAgDEaBwB8JDwUeiArXA 密码:1juk
用途 发送邮件
一、准备工作
1)首先最好使用常用的邮箱,并且在邮箱设置里面开启SMTP服务
a)并且需要关闭登陆校验(也就是说关闭保护)
b)或者登陆授权保护的话 ,那么 下文中的密码 不是登陆密码 而是使用授权密码(查看163授权密码)!! 否则不能正常发送
二、具体代码实现
package cn.tools.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;
/**
* 测试MailUtils,作用是发邮件
* 底层依赖的是javamail, mail.jar 、activation.jar
*/
public class MailUtilsTest {
/*
* 发邮件
*/
@Test
public void send() throws Exception, IOException{
/*
* 1.登录邮件服务器
* MailUtils.createSession(服务器地址,登录名,密码)
* 2.创建邮件对象
* 发件人
* 收件人
* 主题
* 正文
* 3.发
* 需要第一步得到的session 和第二步得到的邮件对象
*/
//导包导入import cn.itcast.mail.MailUtils;
Session session = MailUtils.createSession("smtp.163.com", "17673231234", "bisheaaaa");
Mail mail = new Mail("[email protected]","[email protected]","测试邮件一封","<a href 'https://www.baidu.com/'>点击进入百度</a>");
MailUtils.send(session, mail);
}
}
在这里小编提醒一下 邮箱跟密码 暴露在这里是不安全的 所以下面教大家会以配置文件的形式读取
新建一个配置文件email163.propertie(这里面也是参照键 = 值)书写 具体代码如下
接下来 MailUtilsTest中代码改为
package cn.tools.test;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.Session;
import org.junit.Test;
import cn.itcast.mail.Mail;
import cn.itcast.mail.MailUtils;
/**
* 测试MailUtils,作用是发邮件
* 底层依赖的是javamail, mail.jar 、activation.jar
*/
public class MailUtilsTest {
/*
* 发邮件
*/
@Test
public void send() throws Exception, IOException{
//加载配置文件dao prop中
Properties prop = new Properties();
try{
prop.load(this.getClass().getClassLoader().getResourceAsStream("email163.properties"));
}catch (IOException e1) {
throw new RuntimeException(e1);
}
//登录验证+
String host = prop.getProperty("host"); //使用该方法读取配置文件中的值
String username = prop.getProperty("username");
String password = prop.getProperty("password");
Session session = MailUtils.createSession(host, username, password);
//创建Mail对象
String from = prop.getProperty("from");
String to_mail = "[email protected]";
String subject = prop.getProperty("subject");
String content = prop.getProperty("content");
Mail mail = new Mail(from,to_mail,subject,content);
//发送
MailUtils.send(session, mail);
/*
* 简单发送代码如下
Session session = MailUtils.createSession("smtp.163.com", "17673231234", "shouquan2018");
Mail mail = new Mail("[email protected]","[email protected]","**邮件啊","百度百度是爸爸吧");
MailUtils.send(session, mail);
*/
}
}
这样就使用了读取配置文件 从而不再代码中暴露账户已经信息数据