java 邮件提醒_java邮件提醒实现

【背景】

最近做项目的时候,有这样一个需求,因为项目中的流程是分级流转审批的过程,所以当前人操作完成之后,需要程序的一个固定邮箱通过邮件通知下级相应人员进行处理,所以也就有了小编今天的这篇博文。

【操作步骤】

1.引入activation.jar、commons-email-1.1.jar、mail.jar这三个jar包,百度搜索下载或者单击此百度网盘链接(请单击此链接下载)

2.将共用的信息放到配置文件中(这里只附上一个图片,因为代码会将中文内容转换为其它格式)

注:下面的message1-7全部为邮件内容部分,这里为了实现定制化将公共内容放到一个地方存放,才将其拆开;下面的host内容请按照你邮箱的地址查询相关的host

d1efa3a6f4aac4b092d768a35ae468f7.png

3.建立mail实体类,并通过静态方法读取配置文件中的信息

-

package com.gxt.common.vo;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

/**

* mail实体

* @author mk

*

*/

public class Mail {

public static final String ENCODEING = "UTF-8";

private static String host;//服务器地址

private static String sender;//发件人的邮箱

private String receiver;//收件人的邮箱

private static String name;//发件人昵称

private static String username;//账号

private static String password;//密码

private static String subject;//主题

private String message;//详情

private static String message1;//详情1

private static String message3;//详情3

private static String message5;//详情5

private static String message7;//详情7

//将下面内容放到配置文件mail.properties中,方便修改

static{

InputStream in = Mail.class.getResourceAsStream("/mail.properties");

Properties p = new Properties();

try {

p.load(in);

host =p.getProperty("Host");

sender =p.getProperty("sender");

name =p.getProperty("name");

username =p.getProperty("username");

password =p.getProperty("password");

subject =p.getProperty("subject");

message1 =p.getProperty("message1");

message3 =p.getProperty("message3");

message5 =p.getProperty("message5");

message7 =p.getProperty("message7");

} catch (IOException e) {

e.printStackTrace();

}

}

public static String getHost() {

return host;

}

public static void setHost(String host) {

Mail.host = host;

}

public static String getSender() {

return sender;

}

public static void setSender(String sender) {

Mail.sender = sender;

}

public String getReceiver() {

return receiver;

}

public void setReceiver(String receiver) {

this.receiver = receiver;

}

public static String getName() {

return name;

}

public static void setName(String name) {

Mail.name = name;

}

public static String getUsername() {

return username;

}

public static void setUsername(String username) {

Mail.username = username;

}

public static String getPassword() {

return password;

}

public static void setPassword(String password) {

Mail.password = password;

}

public static String getSubject() {

return subject;

}

public static void setSubject(String subject) {

Mail.subject = subject;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

public static String getMessage1() {

return message1;

}

public static void setMessage1(String message1) {

Mail.message1 = message1;

}

public static String getMessage3() {

return message3;

}

public static void setMessage3(String message3) {

Mail.message3 = message3;

}

public static String getMessage5() {

return message5;

}

public static void setMessage5(String message5) {

Mail.message5 = message5;

}

public static String getMessage7() {

return message7;

}

public static void setMessage7(String message7) {

Mail.message7 = message7;

}

}

-

4.建立工具类,调用jar包中的内容实现邮件发送

-

package com.gxt.common.util;

import java.sql.Date;

import org.apache.commons.mail.EmailException;

import org.apache.commons.mail.HtmlEmail;

import com.gxt.common.vo.Mail;

import com.miitgxt.common.util.ResultInfo;

/**

* 邮件发送工具类

* @author mk

*

*/

public class MailUtil {

//发送调用的方法

public ResultInfo send(Mail mail){

//定制化返回的内容

ResultInfo result = new ResultInfo(false,"邮件发送失败请与管理员联系");

//发送email

HtmlEmail email = new HtmlEmail();

try{

//System.out.println(mail.getHost()+"---"+mail.getSender()+"---"+mail.getName()+"---"+mail.getUsername()+"---"+mail.getPassword()+"---"+mail.getSubject());

//这里是SMTP发送服务器的名字:163的如下:“smtp.163.com”

email.setHostName(mail.getHost());

//字符编码集的设置

email.setCharset(Mail.ENCODEING);

//收件人的邮箱

email.addTo(mail.getReceiver());

//发送人的邮箱

email.setFrom(mail.getSender(),mail.getName());

//如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码

email.setAuthentication(mail.getUsername(), mail.getPassword());

//要发送的邮件主题

email.setSubject(mail.getSubject());

//要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签

email.setMsg(mail.getMessage());

//发送

email.send();

result.setStatus(true);

return result;

}catch(EmailException e){

return result;

}

}

//将邮件内容组装的方法

public ResultInfo setMail(String usermail, String message2 ,String message4){

Mail mail = new Mail();

mail.setReceiver(usermail); //接收人

//放入配置文件中的添加部分

StringBuffer message = new StringBuffer();

message.append(mail.getMessage1());

message.append(message2);

message.append(mail.getMessage3());

message.append(message4);

message.append(mail.getMessage5());

Date datatime = new java.sql.Date(new java.util.Date().getTime());

message.append(datatime.toString());

message.append(mail.getMessage7());

mail.setMessage(message.toString());

MailUtil mailUtil = new MailUtil();

ResultInfo isstr = mailUtil.send(mail);

return isstr;

}

}

-

5.写一个main方法进行测试

-

public static void main(String[] args) throws IOException {

MailUtil mailUtil = new MailUtil();

ResultInfo aaa = mailUtil.setMail("mk740474106@163.com", "收件人姓名XXX", "邮件内容");

if (aaa.isStatus()) {

System.out.println("发送成功");

}else{

System.out.println("发送失败");

}

}

-

6.效果展示,如下图

4c22ee605764b3e8ff01874495c37786.png

【思路扩展】

感兴趣的朋友可以通过反编译工具去看jar中具体实现邮件发送的代码哦O(∩_∩)O~

【总结感受】

本文借鉴博客:请单击链接查看     在工作中,遇到相应的需求,然后解决它,这就是江湖,这就是江湖中的经验     在解决问题的过程中也让自己进行了大量的思考,如何让自己的代码拥有更好的复用性,如何让自己的代码更加简洁,如何让自己的代码更加高效?     另外小编还会去思考如何让自己做的功能能够更好的服务用户,可能这一点是最重要的吧,所谓得用户者得天下     收拾行囊,继续闯荡自己的一个人的江湖啦O(∩_∩)O~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值