线程池发送邮件的公共类实现
来源:互联网 发布:vb.net 调用水晶报表 编辑:程序博客网 时间:2024/05/17 16:03
1.在spring的bean.xml文件中配置邮箱的相关信息和线程池的配置。
<!-- 邮件相关配置 邮箱地址 端口好 用户名 密码 发送地址-->
<bean id="mailAuth" class="com.sf.module.commons.domain.MailAuth">
<property name="host" value="xxx" />
<property name="port" value="xxx" />
<property name="username" value="xxx" />
<property name="password" value="xxx" />
<property name="fromuser" value="xxx" />
</bean>
<!-- 邮件线程池配置 -->
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="queueCapacity" value="25" />
</bean>
2.添加mailAuth实体类。
</pre><pre class="html" name="code">package com.module.commons.domain;/** * <pre> * ********************************************* * Copyright sf-express. * All rights reserved. * Description: TODO(这里用一句话描述这个类的作用) * HISTORY: * ********************************************* * Version Date Author Desc * ********************************************* * </pre> */public class MailAuth { //邮件服务器地址 private String host; //邮件服务器端口 private int port; //用户名 private String username; //密码 private String password; //发送人邮件地址 private String fromuser; public String getHost() { return host; } public void setHost(String host) { this.host = host; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getFromuser() { return fromuser; } public void setFromuser(String fromuser) { this.fromuser = fromuser; } }
3. 写发送邮件的接口类
public interface IMailAuthBiz {//发邮件接口void sendMail(List<String> mailList,String mailTitle,String mailBody);}
4.写发送邮件的实现类
package com.sf.module.commons.biz;import java.util.List;import javax.annotation.Resource;import org.apache.commons.mail.DefaultAuthenticator;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.HtmlEmail;import org.springframework.core.task.TaskExecutor;import org.springframework.stereotype.Service;import com.sf.module.commons.domain.MailAuth;@Servicepublic class MailAuthBiz implements IMailAuthBiz {@Resourceprivate MailAuth mailAuth;@Resourceprivate TaskExecutor taskExecutor; //注入线程池控制类</strong>public MailAuth getMailAuth() {return mailAuth;}public void setMailAuth(MailAuth mailAuth) {this.mailAuth = mailAuth;}/** * <p>Description: TODO(这里用一句话描述这个覆盖方法的作用)</p> * @param mailList 发送人员的地址的集合 * @param mailTitle 邮件标题 * @param mailBody 邮件内容 * @see com.sf.module.commons.biz.IMailAuthBiz#sendMail(java.util.List, java.lang.String, java.lang.String) *************************************************** Version Date Author Desc --------------------------------------------------- *************************************************** */@Overridepublic void sendMail(List<String> mailList, String mailTitle,String mailBody) {if(null == mailList || mailList.size() == 0){return ;}HtmlEmail email = getHtmlEmail();try {for(String mailAdrr : mailList){if(null == mailAdrr || "".equals(mailAdrr)){continue;}email.addTo(mailAdrr);}//显示发送者email.setFrom(mailAuth.getFromuser());//标题email.setSubject(mailTitle);//邮件内容email.setHtmlMsg(genMailBody(mailBody));email.setCharset("UTF-8");taskExecutor.execute(new MailPool(email));} catch (EmailException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/** * <pre> * ********************************************* * Copyright sf-express. * All rights reserved. * Description: TODO(这里用一句话描述这个类的作用) * HISTORY: * ********************************************* * VersionDateAuthor Desc * v2.0 Oct 28, 2014 发邮件线程池 * ********************************************* * </pre> */private class MailPool implements Runnable {private HtmlEmail email ;public MailPool(HtmlEmail email1) {email = email1;}public void run() {try {email.send();} catch (EmailException e) {e.printStackTrace();}}} /** * @Description: TODO(这里用一句话描述这个方法的作用) * @return ************************************************** Version * Date Author Desc * --------------------------------------------------- v2.0 Sep * 取得HtmlEmail对象 * ************************************************** */private HtmlEmail getHtmlEmail(){HtmlEmail email = new HtmlEmail();email.setHostName(mailAuth.getHost());email.setSmtpPort(mailAuth.getPort());email.setAuthenticator(new DefaultAuthenticator(mailAuth.getUsername(), mailAuth.getPassword()));return email;}/** * @Description: TODO(这里用一句话描述这个方法的作用) * @param bodyContent * @return *************************************************** Version Date Author Desc --------------------------------------------------- *************************************************** */private String genMailBody(String bodyContent){String mailbody = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head><body>" + bodyContent + "</body></html>";return mailbody;}}
5.代码就可以直接调用接口了。
- 线程池发送邮件的公共类实现
- Java发送邮件,MailUtil公共类
- Java 线程池 发送邮件
- 利用spring提供的线程池发送邮件
- javamail 实现邮件的发送
- java实现邮件的发送
- python实现邮件的发送
- php发送邮件的实现
- java发送邮件的实现
- java邮件发送的实现
- android实现邮件的发送
- JavaMail实现邮件的发送
- java发送邮件的实现
- JAVA实现邮件的发送
- 前端发送邮件的 实现
- 发送邮件的类
- C# 邮件发送 实现类
- PHPMailer类实现邮件发送
- Android Property属性的使用
- Who is YaoGe.(搞笑篇)
- Tsinsen A1303. tree(伍一鸣) LCT
- KMP算法
- 有趣的js点灯
- 线程池发送邮件的公共类实现
- Admob新版本使用入门
- Linux中通配符与正则表达式
- android JNI开发之 ----HelloWorld
- 虚拟机随谈: 解释器, 树遍历解释器, 基于栈与基于寄存器, 大杂烩
- WPF中的依赖项属性
- 黑马程序员——集合(二)--Collections、Arrays、泛型
- 横幅广告(1)Admob
- Android 部分内容设置颜色、字体、超链接、图片