|
What this is
Other links
The source code/* * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/common/SendMailUtil.java,v 1.14 2005/01/18 11:52:16 minhnn Exp $ * $Author: minhnn $ * $Revision: 1.14 $ * $Date: 2005/01/18 11:52:16 $ * * ==================================================================== * * Copyright (C) 2002-2005 by MyVietnam.net * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * All copyright notices regarding mvnForum MUST remain intact * in the scripts and in the outputted HTML. * The "powered by" text/logo with a link back to * http://www.mvnForum.com and http://www.MyVietnam.net in the * footer of the pages MUST remain visible when the pages * are viewed on the internet or intranet. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * Support can be obtained from support forums at: * http://www.mvnForum.com/mvnforum/index * * Correspondence and Marketing Questions can be sent to: * info@MyVietnam.net * * @author: Minh Nguyen minhnn@MyVietnam.net * @author: Mai Nguyen mai.nh@MyVietnam.net */ package com.mvnforum.common; import java.io.*; import java.util.HashMap; import java.util.Map; import javax.mail.MessagingException; import com.mvnforum.*; import com.mvnforum.db.DAOFactory; import com.mvnforum.db.MemberBean; import com.mvnforum.user.UserModuleConfig; import freemarker.template.*; import net.myvietnam.mvncore.exception.*; import net.myvietnam.mvncore.util.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class SendMailUtil { private static Log log = LogFactory.getLog(SendMailUtil.class); private SendMailUtil() { } public static void sendActivationCodeEmail(int memberID, String serverName) throws ObjectNotFoundException, DatabaseException, BadInputException, MessagingException, IOException, TemplateException { MailMessageStruct mailMessageStruct = getActivationCodeEmail(memberID, serverName); try { MailUtil.sendMail(mailMessageStruct); } catch (UnsupportedEncodingException e) { log.error("Cannot support encoding", e); } } // This method can be optimized by accept input of type MemberBean public static MailMessageStruct getActivationCodeEmail(int memberID, String serverName) throws ObjectNotFoundException, DatabaseException, BadInputException, IOException, TemplateException { // Now, check that this member is not activated, to prevent the // situation that other people try to annoy this member String activateCode = DAOFactory.getMemberDAO().getActivateCode(memberID); if (activateCode.equals(MemberBean.MEMBER_ACTIVATECODE_ACTIVATED)) { //@todo : localize me throw new BadInputException("Cannot activate an already activated member."); } MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forPublic(memberID); String memberName = memberBean.getMemberName(); String memberEmail = memberBean.getMemberEmail(); // generate a Activation code // Note that the activation code does not need security MD5 as in the Password Reset if (activateCode.equals("")) { // only generate activate code when the current value is empty // that is, if there is an activate code, re-use it. activateCode = String.valueOf(System.currentTimeMillis()); DAOFactory.getMemberDAO().updateActivateCode(memberID, activateCode); } // we have pass the assertion check, go ahead StringBuffer activationUrl = new StringBuffer(256); activationUrl.append(serverName); activationUrl.append(ParamUtil.getContextPath()); activationUrl.append(UserModuleConfig.getUrlPattern()); activationUrl.append("/activatemember?activatecode="); activationUrl.append(activateCode); activationUrl.append("&member="); activationUrl.append(memberName); // Prepare the FreeMarker configuration; Configuration cfg = MVNForumConfig.getFreeMarkerConfiguration(); //Below is a code to map content of email to template Map root = new HashMap(); root.put("serverName", serverName); root.put("MVNForumInfo", MVNForumInfo.getProductDesc()); root.put("activationUrl", activationUrl.toString()); root.put("memberName", memberName); root.put("activateCode", activateCode); StringWriter subjectWriter = new StringWriter(256); Template subjectTemplate = cfg.getTemplate(MVNForumGlobal.TEMPLATE_SENDACTIVATECODE_SUBJECT, "UTF-8"); subjectTemplate.process(root, subjectWriter); String subject = subjectWriter.toString(); StringWriter bodyWriter = new StringWriter(1024); Template bodyTemplate = cfg.getTemplate(MVNForumGlobal.TEMPLATE_SENDACTIVATECODE_BODY, "UTF-8"); bodyTemplate.process(root, bodyWriter); String body = bodyWriter.toString(); log.debug("subject = " + subject); log.debug("body = " + body); MailMessageStruct mailMessage = new MailMessageStruct(); mailMessage.setFrom(MVNForumConfig.getWebMasterEmail()); mailMessage.setTo(memberEmail); mailMessage.setSubject(subject); mailMessage.setMessage(body); return mailMessage; } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.