做了一个简单的spring mail的功能,使用Freemarker模板创建HTML内容: java代码: import java.io.UnsupportedEncodingException; import java.util.Map; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; import freemarker.template.Template; public class SendMailUtil { private static JavaMailSender sender = null; private static FreeMarkerConfigurer freeMarkerConfigurer = null; public void setSender(JavaMailSender sender) { this.sender = sender; } public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) { this.freeMarkerConfigurer = freeMarkerConfigurer; } private static String getMailText(Map map) { String htmlText = ""; try { Template tpl = freeMarkerConfigurer.getConfiguration().getTemplate(Constants.MAIL_TEMPLATE); htmlText = FreeMarkerTemplateUtils.processTemplateIntoString(tpl, map); } catch (Exception e) { e.printStackTrace(); } return htmlText; } public static void sendTemplateMail(Map map) throws MessagingException { MimeMessage msg = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf8"); try { helper.setFrom(Constants.FROM_EMAIL_ADDRESS, Constants.FROM_EMAIL_NAME); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } helper.setTo((String[]) map.get(Constants.EMAIL_ADDRESS)); helper.setSubject((String) map.get(Constants.SUBJECT)); String htmlText = getMailText(map); helper.setText(htmlText, true); sender.send(msg); } } xml 配置注入: <bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="lonmailhost.lehman.com" /> <property name="port" value="25" /> <property name="username" value="username" /> <property name="password" value="password" /> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> </props> </property> </bean> <bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/freemarkertemplate/" /> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">0</prop> <prop key="default_encoding">UTF-8</prop> <prop key="locale">en_US</prop> </props> </property> </bean> <bean id="sendMailUtil" class=" com.nomura.dodge.util.SendMailUtil"> <property name="sender" ref="sender" /> <property name="freeMarkerConfigurer" ref="freeMarkerConfigurer" /> </bean>