声明:本人的框架是SSM
1、写一个email工具类
public class EmailUtil {
public void sendMessage(String[] receivers) throws Exception{
Properties prop = new Properties();
// 开启debug调试,以便在控制台查看
prop.setProperty("mail.debug", "true");
// 设置邮件服务器主机名
prop.setProperty("mail.host", "smtp.163.com");
// 发送服务器需要身份验证
prop.setProperty("mail.smtp.auth", "true");
// 发送邮件协议名称
prop.setProperty("mail.transport.protocol", "smtp");
// 开启SSL加密,否则会失败
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);
// 创建session
Session session = Session.getInstance(prop);
// 通过session得到transport对象
Transport ts = session.getTransport();
// 连接邮件服务器:邮箱类型,帐号,授权码代替密码(更安全)
ts.connect("smtp.163.com","35555555555@163.com", "xxxxx授权码");
// 创建邮件
// 创建邮件对象
MimeMessage message = new MimeMessage(session);
// 指明邮件的发件人
message.setFrom(new InternetAddress("35555555555@163.com"));
// 指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
for (String receiver : receivers) {
message.setRecipient(Message.RecipientType.TO, new InternetAddress(receiver));
// 邮件的标题
message.setSubject("邮件测试");
// 邮件的文本内容
message.setContent(""
+ "<h1><font color=red>"
+ "京东邀请你参加京东9月20日,京东商品节!更多优惠商品等你来买,买的越多优惠越多!赶快行动吧!"
+ "</font></h1>"
+ "", "text/html;charset=UTF-8");
// 发送邮件
}
ts.sendMessage(message, message.getAllRecipients());
ts.close();
}
}
2、定义一个job类,主要是
public class SendEmail {
//注入service
@Resource
private UserService userService;
public void sendEmail(){
//查询邮箱
List<String> receivers=userService.findEmail();
//定一个数组,将查询到的邮箱一一放入数组中
String[] receiverArray=new String[receivers.size()];
for(int i=0;i<receivers.size();i++){
receiverArray[i]=receivers.get(i);
}
//调用EmailUtile方法,发送邮件
EmailUtil emailUtil=new EmailUtil();
try {
emailUtil.sendMessage(receiverArray);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
applicationContent.xml中
//id随意起一个名字,主要是下面ref要与这个名字相同 class="job类所在的位置" method="job类中的方法名"
<bean id="jobA" class="com.zhiyou.job.SendEmail"></bean>
<task:scheduled-tasks>
<task:scheduled ref="jobA" method="sendEmail" cron="1 12 12 12 12 ?"/>
</task:scheduled-tasks>