/* * Licensed to csti consulting * You may obtain a copy of the License at * * http://www.csticonsulting.com * Copyright (c) 2006-Aug 24, 2010 Consultation CS-TI inc. * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package com.salesmanager.core.util; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.StringBufferInputStream; import java.io.StringWriter; import java.util.HashMap; import java.util.Map; import javax.activation.DataSource; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import org.apache.log4j.Logger; import org.springframework.mail.MailPreparationException; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessagePreparator; import com.salesmanager.core.entity.merchant.MerchantStore; import com.salesmanager.core.entity.merchant.MerchantUserInformation; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; /** * Prepares HTML emails to be sent by the system * * @author Carl Samson * */ public abstract class EmailUtilImpl implements EmailUtil { private static org.apache.commons.configuration.Configuration config = PropertiesUtil .getConfiguration(); private String chkpath = config.getString("core.store.mediaurl"); private Configuration configuration; private String freemarkerTemplate; private JavaMailSender mailSender; private String fromEmail = null; private String fromAddress = null; private Logger log = Logger.getLogger(EmailUtilImpl.class); public Map prepareEmailContext( MerchantStore profile, String lang) throws Exception { Map emailcontext = new HashMap(); String domain = ReferenceUtil.getUnSecureDomain(profile); if (profile == null) { throw new Exception("Profile is null"); } String disclaim = LabelUtil.getInstance().getText(lang, "email.disclaimer"); String spam = LabelUtil.getInstance().getText(lang, "email.spam.disclaimer"); String footer = LabelUtil.getInstance().getText(lang, "footer.copywright"); String msgfrom = LabelUtil.getInstance().getText(lang, "email.message.from"); emailcontext.put("EMAIL_STORE_NAME", msgfrom + " " + profile.getStorename()); if (profile.getStorelogo() != null && !profile.getStorelogo().equals("")) { StringBuffer logopath = new StringBuffer(); logopath.append("<div class=\"header\">").append("<img src=\""); logopath.append(ReferenceUtil.getUnSecureDomain(profile)).append( "/").append(chkpath).append("/images/brandings/").append( profile.getMerchantId()).append("/header/").append( profile.getStorelogo()).append("\""); logopath.append(" alt=\"logo\" /></div>"); emailcontext.put("LOGOPATH", logopath.toString()); } else { emailcontext.put("LOGOPATH", ""); } fromEmail = profile.getStorename(); fromAddress = profile.getStoreemailaddress(); StringBuffer disclaimbuffer = new StringBuffer(); disclaimbuffer.append(disclaim).append(" ").append("<a href=\"mailto:") .append(profile.getStoreemailaddress()).append("\">").append( profile.getStoreemailaddress()).append("</a>"); emailcontext.put("EMAIL_DISCLAIMER", disclaimbuffer.toString()); emailcontext.put("EMAIL_SPAM_DISCLAIMER", spam); StringBuffer footerbuffer = new StringBuffer(); footerbuffer.append(footer).append(" ").append( DateUtil.getPresentYear()); footerbuffer.append(" ").append("<a href=\"").append(domain).append( "\">").append(profile.getStorename()).append("</a>"); emailcontext.put("EMAIL_FOOTER_COPYRIGHT", footerbuffer.toString()); return emailcontext; } public abstract void send(final String email, final String subject, final Map entries) throws Exception; public void setEmailTemplate(String template) { this.setFreemarkerTemplate(template); } public void setFreemarkerMailConfiguration(Configuration configuration) { this.configuration = configuration; } public void setFreemarkerTemplate(String freemarkerTemplate) { this.freemarkerTemplate = freemarkerTemplate; } public void setMailSender(JavaMailSender mailSender) { this.mailSender = mailSender; } public String getFromEmail() { return fromEmail; } public void setFromEmail(String fromEmail) { this.fromEmail = fromEmail; } public String getFromAddress() { return fromAddress; } public void setFromAddress(String fromAddress) { this.fromAddress = fromAddress; } public Configuration getConfiguration() { return configuration; } public String getFreemarkerTemplate() { return freemarkerTemplate; } public JavaMailSender getMailSender() { return mailSender; } }