版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zmh458/article/details/84205480
前言
最近公司的项目用到了发送邮件的功能,所以自己自己就写了一个发送邮件的工具类,使用的是javax.mail的工具类。
添加依赖包:
<!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>${javax.mail.version}</version>
</dependency>
---------------------
叙述
//获取到当前的时间
private static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* 功能描述: 发送邮件的基本配置
*
* @param sendEmail 发件人地址
* @param sendEmailPwd 授权码代替密码(更安全) 授权码的获取:进入个人邮箱,点击设置–>账户, SMTP服务选项 默认情况下这个选项是不开启的。
* 点击开启腾讯会进行身份验证,身份验证通过以后,会收到一个用于使用SMTP的16位口令,
* 验证身份的过程中把收到的口令保存下来,因为后面要使用SMTP功能必须要用到这个口令。
* @param subject 邮件主题
* @param content 邮件内容
* @param toEmilAddress 收件人地址
* @param carbonCopyEmail 抄送人地址
* @throws Exception
* @Title: sendEmail
* @Description: 发送邮件工具类方法
* @return: void
* @since: 1.0.0 2018/11/18 19:04
*/
public static boolean sendEmail(String sendEmail, String subject, String content,String toEmilAddress,String carbonCopyEmail, String user, String sendEmailPwd) {
if (toEmilAddress != null) {
//设置基本属性
Properties properties = new Properties();
//设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)
properties.put("mail.smtp.host", "smtp.tfjybj.com");
properties.put("mail.transport.protocol", "smtp");
//需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
properties.put("mail.smtp.auth", true);
// 使用java发送邮件的步骤如下
//1、创建session
Session session = Session.getInstance(properties);
//开启session的调试模式,可以查看当前邮件发送状态
session.setDebug(true);
//创建邮件对象
MimeMessage message = new MimeMessage(session);
try {
//设置发件人
message.setFrom(new InternetAddress(sendEmail));
//设置收件人地址,以逗号隔开
InternetAddress[] sendTo = InternetAddress.parse(toEmilAddress);
message.setRecipients(MimeMessage.RecipientType.TO, sendTo);
//设置收件人地址,以逗号隔开
InternetAddress[] carbonCopy = InternetAddress.parse(carbonCopyEmail);
message.setRecipients(MimeMessage.RecipientType.CC, carbonCopy);
//加载标题
message.setSubject(subject);
// 设置发送时间
message.setSentDate(new Date());
// 设置邮件的文本内容
// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(content, "text/html;charset=utf-8");
multipart.addBodyPart(contentPart);
message.setContent(multipart);
message.saveChanges(); //保存邮件
//2、通过session获取Transport对象(发送邮件的核心API)
Transport transport = session.getTransport("smtp");
// 3、通过邮件用户名密码链接
transport.connect("smtp.tfjybj.com", user, sendEmailPwd);
//5、发送电子邮件
transport.sendMessage(message, message.getAllRecipients());
transport.close();//关闭连接.
System.out.println("send success!");
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
} else {
return false;
}
}
/**
* 功能描述:
*
* @param: toEmilAddress,违纪人员邮箱地址
* @param: username,违纪人员姓名
* @param: disciplineEmail, 纪委邮箱地址
* @param: disciplineName 纪委姓名
* @return: boolean
* @since: 1.0.0 2018/11/22 8:35
*/
public static boolean sendEmailByData(String toEmilAddress, String username, String disciplineEmail, String disciplineName,String carbonCopyEmail) {
SendEmailUtil se = new SendEmailUtil();
String content = "<html>\n<body>\n";
content += "<style class=\"fox_global_style\">div.fox_html_content {line-height: 1.5;}/* 一些默认样式 */blockquote {margin-Top: 0px;margin-Bottom: 0px;margin-Left: 0.5em}ol,ul {margin-Top: 0px;\"margin-Bottom: 0px;list-style-position: inside;}p {margin-Top: 0px;margin-Bottom: 0px}</style><div style=\"width: 720px; margin: 0 auto;\"> "
+ "<div class=\"banner-has\" style=\"width: 720px; height: 100px; background: red; background:url(http://img.sobot.com/email/console/banner2.png) ; background-repeat: no-repeat; background-position: center; background-size:100%;\"> </div> "
+ "<div style=\"padding-bottom: 25px;padding-top: 24px; background: #f7fafa; padding-left: 50px; width: 670px;margin-top: -15px;\"> " + "<h2 style=\"font-size: 18px; color: #555556; margin-bottom: 15px;\">"
+ "各位纪委:"+ disciplineName + ",您好" + "</h2> " + "<div style=\"font-size: 14px; color: #6c6f70; margin-bottom: 15px;\"> " + "<h3>经系统自动检测 ,以下同学未签到,出于安全考虑,请纪委们及时联系这些同学,辛苦啦!</h3>" + " "
+ "<h3>同学名单如下: " + username + "</h3>" + "<h3 style=\"font-size: 18px; color: #555556; margin-left: 445px; margin-top: 90px;\">" + sdfTime.format(new Date()) + "</h3> " + " </div> </div> "
+ "<div style=\"width:690px;background: #f7fafa; font-size: 12px; line-height: 72px; color: #a7b3b3; width: 720px;text-align: center;border-top: solid 4px white;margin-top: -15px;\">项目组 · 技术支持</div></div>" + "<br><br>"
+ "<div style=\"width:1px;height:0px;overflow:hidden\"> " + "<img style=\"width:0;height:0\" src=\"http://sctrack.sendcloud.net/track/open/eyJ1c2VyX2lkIjogNDYyMTAsICJ0YXNrX2lkIjogIiIsICJlbWFpbF9pZCI6ICIxNTExMTU4MjY5MzY4XzQ2MjEwXzE2NzQ4XzgzNTYuc2MtMTBfOV81OF8yNDItaW5ib3VuZDAkMTU3MzI2MjYwMTVAMTYzLmNvbSIsICJzaWduIjogImNhNjMyNGNkY2Y0MDg0M2RhYzY3ZTRhZWI0ZWM4ZWE5IiwgInVzZXJfaGVhZGVycyI6IHt9LCAibGFiZWwiOiAwLCAiY2F0ZWdvcnlfaWQiOiA5MzI3NH0=.gif\"></div>"
+ "<div style=\"text-align:center\"> " + "<div style=\"border-top:1px solid #ddd;width: 600px;display:inline-block;padding:10px\"> </div></div>" + "\n" + "</body>\n</html>";
boolean flag = se.sendEmail("[email protected]", "考勤异常--" + sdfTime.format(new Date()), content, disciplineEmail +","+ toEmilAddress, carbonCopyEmail,"xxx", "xxx");
if (flag == true) {
return true;
} else {
return false;
}
}
感谢您的阅读~~