1 41 package com.mvnforum.common; 42 43 import java.io.*; 44 import java.util.HashMap ; 45 import java.util.Map ; 46 47 import javax.mail.MessagingException ; 48 49 import com.mvnforum.*; 50 import com.mvnforum.db.DAOFactory; 51 import com.mvnforum.db.MemberBean; 52 import com.mvnforum.user.UserModuleConfig; 53 import freemarker.template.*; 54 import net.myvietnam.mvncore.exception.*; 55 import net.myvietnam.mvncore.util.*; 56 import org.apache.commons.logging.Log; 57 import org.apache.commons.logging.LogFactory; 58 59 60 public class SendMailUtil { 61 62 private static Log log = LogFactory.getLog(SendMailUtil.class); 63 64 private SendMailUtil() { 65 } 66 67 public static void sendActivationCodeEmail(int memberID, String serverName) 68 throws ObjectNotFoundException, DatabaseException, BadInputException, MessagingException , IOException, TemplateException { 69 70 MailMessageStruct mailMessageStruct = getActivationCodeEmail(memberID, serverName); 71 try { 72 MailUtil.sendMail(mailMessageStruct); 73 } catch (UnsupportedEncodingException e) { 74 log.error("Cannot support encoding", e); 75 } 76 } 77 78 public static MailMessageStruct getActivationCodeEmail(int memberID, String serverName) 80 throws ObjectNotFoundException, DatabaseException, BadInputException, IOException, TemplateException { 81 82 String activateCode = DAOFactory.getMemberDAO().getActivateCode(memberID); 85 if (activateCode.equals(MemberBean.MEMBER_ACTIVATECODE_ACTIVATED)) { 86 throw new BadInputException("Cannot activate an already activated member."); 88 } 89 90 MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forPublic(memberID); 91 String memberName = memberBean.getMemberName(); 92 String memberEmail = memberBean.getMemberEmail(); 93 94 if (activateCode.equals("")) { 97 activateCode = String.valueOf(System.currentTimeMillis()); 100 DAOFactory.getMemberDAO().updateActivateCode(memberID, activateCode); 101 } 102 103 StringBuffer activationUrl = new StringBuffer (256); 105 activationUrl.append(serverName); 106 activationUrl.append(ParamUtil.getContextPath()); 107 activationUrl.append(UserModuleConfig.getUrlPattern()); 108 activationUrl.append("/activatemember?activatecode="); 109 activationUrl.append(activateCode); 110 activationUrl.append("&member="); 111 activationUrl.append(memberName); 112 113 Configuration cfg = MVNForumConfig.getFreeMarkerConfiguration(); 115 116 Map root = new HashMap (); 118 root.put("serverName", serverName); 119 root.put("MVNForumInfo", MVNForumInfo.getProductDesc()); 120 root.put("activationUrl", activationUrl.toString()); 121 root.put("memberName", memberName); 122 root.put("activateCode", activateCode); 123 124 StringWriter subjectWriter = new StringWriter(256); 125 Template subjectTemplate = cfg.getTemplate(MVNForumGlobal.TEMPLATE_SENDACTIVATECODE_SUBJECT, "UTF-8"); 126 subjectTemplate.process(root, subjectWriter); 127 String subject = subjectWriter.toString(); 128 129 StringWriter bodyWriter = new StringWriter(1024); 130 Template bodyTemplate = cfg.getTemplate(MVNForumGlobal.TEMPLATE_SENDACTIVATECODE_BODY, "UTF-8"); 131 bodyTemplate.process(root, bodyWriter); 132 String body = bodyWriter.toString(); 133 134 log.debug("subject = " + subject); 135 log.debug("body = " + body); 136 137 MailMessageStruct mailMessage = new MailMessageStruct(); 138 mailMessage.setFrom(MVNForumConfig.getWebMasterEmail()); 139 mailMessage.setTo(memberEmail); 140 mailMessage.setSubject(subject); 141 mailMessage.setMessage(body); 142 143 return mailMessage; 144 } 145 } 146 | Popular Tags |