package com.sp2p.service; import java.util.Properties; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import com.sp2p.constants.IConstants; public class SendMailService { private static Log log = LogFactory.getLog(SendMailService.class); private JavaMailSenderImpl senderImpl; private ThreadPoolTaskExecutor taskExecutor; private String head; private String text; private String prompt; private String subject; private String from; private String message; public SendMailService(){ String host = IConstants.MAIL_HOST; String username =IConstants.MAIL_USERNAME; String password = IConstants.MAIL_PASSWORD; this.from = IConstants.MAIL_FROM; senderImpl = new JavaMailSenderImpl(); senderImpl.setHost(host); senderImpl.setUsername(username); senderImpl.setPassword(password); Properties prop = new Properties(); prop.put("mail.smtp.auth", "true"); // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确 prop.put("mail.smtp.timeout", "25000"); senderImpl.setJavaMailProperties(prop); } /** * 发送验证邮件 * @param VerificationUrl * @param userName * @param userEmail */ public void sendRegisterVerificationEmail(final String VerificationUrl, final String userName, final String userEmail) { taskExecutor.execute(new Runnable() { public void run() { try { getMailSet();//-----// sendRegisterVerificationEmailMsg(VerificationUrl, userName, userEmail); } catch (MessagingException e) { log.error(e); e.printStackTrace(); } } }); } /** * 验证注册邮箱密码 * @param VerificationUrl * @param userName * @param userEmail */ public void sendRegisterVerificationEmailPassWordindex(final String VerificationUrl, final String userName, final String userEmail) { taskExecutor.execute(new Runnable() { public void run() { try { getMailSet(); sendRegisterVerificationEmailPassWord(VerificationUrl, userName, userEmail); } catch (MessagingException e) { log.error(e); e.printStackTrace(); } } }); } /** * 邮件验证 */ public void sendRetakePasswordVerificationEmail(final String VerificationUrl, final String userName, final String userEmail) { taskExecutor.execute(new Runnable() { public void run() { try { getMailSet(); sendRetakePasswordVerificationEmailMsg(VerificationUrl, userName, userEmail); } catch (MessagingException e) { log.error(e); e.printStackTrace(); } } }); } public void sendTrancepasswordLogin(final String VerificationUrl, final String userName, final String userEmail) { taskExecutor.execute(new Runnable() { public void run() { try { getMailSet(); sendTrancePassword(VerificationUrl, userName, userEmail); } catch (MessagingException e) { log.error(e); e.printStackTrace(); } } }); } /** * 发送验证信息 * @param VerificationUrl * @param userName * @param userEmail * @throws MessagingException */ private void sendRegisterVerificationEmailMsg(String VerificationUrl, String userName, String userEmail) throws MessagingException{ MimeMessage msg = senderImpl.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom(from); helper.setTo(userEmail); helper.setSubject("合和年在线验证通知!"); StringBuffer sb = new StringBuffer(); sb.append("<HTML><BODY style='border-width:0px'>"); sb.append("<H4 style='font-weight:normal;font-size:14px'>尊敬的<span>"); sb.append(userName); sb.append("</span>:</H4>"); sb.append("<BR/>"); sb.append("<DIV>您的合和年在线账号已经成功创建,请点击此链接激活账号:</DIV>"); sb.append("<BR/>"); sb.append("<DIV><a href='"); sb.append(VerificationUrl); sb.append("'>"); sb.append(VerificationUrl); sb.append("</a></DIV>"); sb.append("</BODY></HTML>"); helper.setText(sb.toString(), true); senderImpl.send(msg); } /** * 发送用户组邮件 * @param title * @param content * @param email * @throws MessagingException */ public void sendUserGroupEmail(String userEmail,String userName,String title,String content) throws MessagingException{ getMailSet(); MimeMessage msg = senderImpl.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom(from); helper.setTo(userEmail); helper.setSubject(title); StringBuffer sb = new StringBuffer(); sb.append("<HTML><BODY style='border-width:0px'>"); sb.append("<H4 style='font-weight:normal;font-size:14px'>尊敬的<span>"); sb.append(userName); sb.append("</span>:</H4>"); sb.append("<BR/>"); sb.append(content); sb.append("</BODY></HTML>"); helper.setText(sb.toString(), true); senderImpl.send(msg); } private void sendRegisterVerificationEmailPassWord(String VerificationUrl, String userName, String userEmail) throws MessagingException{ MimeMessage msg = senderImpl.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom(from); helper.setTo(userEmail); helper.setSubject("合和年在线修改登录密码通知!"); StringBuffer sb = new StringBuffer(); sb.append("<HTML><BODY style='border-width:0px'>"); sb.append("<H4 style='font-weight:normal;font-size:14px'>尊敬的<span>"); sb.append(userName); sb.append("</span>:</H4>"); sb.append("<BR/>"); sb.append("<DIV>请点击此链接激活修改密码:</DIV>"); sb.append("<BR/>"); sb.append("<DIV><a href='"); sb.append(VerificationUrl); sb.append("'>"); sb.append(VerificationUrl); sb.append("</a></DIV>"); sb.append("</BODY></HTML>"); helper.setText(sb.toString(), true); senderImpl.send(msg); } /** * 修改交易密码 * @param VerificationUrl * @param userName * @param userEmail * @throws MessagingException */ private void sendTrancePassword(String VerificationUrl, String userName, String userEmail) throws MessagingException{ MimeMessage msg = senderImpl.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom(from); helper.setTo(userEmail); helper.setSubject("合和年在线修改登录密码通知!"); StringBuffer sb = new StringBuffer(); sb.append("<HTML><BODY style='border-width:0px'>"); sb.append("<H4 style='font-weight:normal;font-size:14px'>尊敬的<span>"); sb.append(userName); sb.append("</span>:</H4>"); sb.append("<BR/>"); sb.append("<DIV>请点击此链接激活修改交易密码:</DIV>"); sb.append("<BR/>"); sb.append("<DIV><a href='"); sb.append(VerificationUrl); sb.append("'>"); sb.append(VerificationUrl); sb.append("</a></DIV>"); sb.append("</BODY></HTML>"); helper.setText(sb.toString(), true); senderImpl.send(msg); } private void getMailSet(){ this.from = IConstants.MAIL_FROM; senderImpl = new JavaMailSenderImpl(); senderImpl.setHost(IConstants.MAIL_HOST.trim()); senderImpl.setUsername(IConstants.MAIL_USERNAME.trim()); senderImpl.setPassword(IConstants.MAIL_PASSWORD.trim()); Properties javaMailProperties = new Properties(); javaMailProperties.put("mail.smtp.auth", "true"); javaMailProperties.put("mail.smtp.timeout", "25000"); senderImpl.setJavaMailProperties(javaMailProperties); } private void sendRetakePasswordVerificationEmailMsg(String retakePassword, String userName, String userEmail) throws MessagingException{ MimeMessage msg = senderImpl.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom(from); helper.setTo(userEmail); helper.setSubject("合和年在线帐户找回密码链接!"); StringBuffer sb = new StringBuffer(); sb.append("<HTML><BODY style='border-width:0px'>"); sb.append("<H4 style='font-weight:normal;font-size:14px'>尊敬的<span>"); sb.append(userName); sb.append("</span>:</H4>"); sb.append("<BR/>"); sb.append("<DIV>请点击此链接重设密码:</DIV>"); sb.append("<BR/>"); sb.append("<DIV><a href='"); sb.append(retakePassword); sb.append("'>"); sb.append(retakePassword); sb.append("</a></DIV>"); sb.append("</BODY></HTML>"); helper.setText(sb.toString(), true); senderImpl.send(msg); } public void SendUserEmailSetInUser(final String VerificationUrl, final String userName, final String userEmail) { taskExecutor.execute(new Runnable() { public void run() { try { getMailSet(); SendUserEmailSet(VerificationUrl, userName, userEmail); } catch (MessagingException e) { log.error(e); e.printStackTrace(); } } }); } private void SendUserEmailSet(String VerificationUrl, String userName, String userEmail) throws MessagingException{ MimeMessage msg = senderImpl.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom(from); helper.setTo(userEmail); helper.setSubject("合和年在线邮箱绑定通知!"); StringBuffer sb = new StringBuffer(); sb.append("<HTML><BODY style='border-width:0px'>"); sb.append("<H4 style='font-weight:normal;font-size:14px'>尊敬的<span>"); sb.append(userName); sb.append("</span>:</H4>"); sb.append("<BR/>"); sb.append("<DIV>请点击此链接绑定邮箱</DIV>"); sb.append("<BR/>"); sb.append("<DIV><a href='"); sb.append(VerificationUrl); sb.append("'>"); sb.append(VerificationUrl); sb.append("</a></DIV>"); sb.append("</BODY></HTML>"); helper.setText(sb.toString(), true); senderImpl.send(msg); } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getHead() { return head; } public void setHead(String head) { this.head = head; } public String getText() { return text; } public void setText(String text) { this.text = text; } public String getPrompt() { return prompt; } public void setPrompt(String prompt) { this.prompt = prompt; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public void setTaskExecutor(ThreadPoolTaskExecutor taskExecutor) { this.taskExecutor = taskExecutor; } /* public void setGetAppliactionService(GetAppliactionService getAppliactionService) { this.getAppliactionService = getAppliactionService; }*/ // public void setSenderImpl(JavaMailSender senderImpl) { // this.senderImpl = senderImpl; // } // public void setMsg(MimeMessage msg) { // this.msg = msg; // } }