springframework.mail.javamail.JavaMailSenderImpl 邮件说明
1.jdbc.properties 配置发件人邮箱默认地址
mail.from=test@xxx.net //默认的发件人地址
mail.host= xxx.xxx.net //邮箱服务器地址
mail.username=test //发件人账号
mail.password=test //发件人密码
mail.defaultEncoding=UTF-8
2.app-resource.xml 配置
<!-- 通过Velocity 邮件模板创建邮件内容 -->
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="resourceLoaderPath" value="classpath:velocity/" />
<property name="velocityProperties">
<props>
<prop key="input.encoding">UTF-8</prop>
<prop key="output.encoding">UTF-8</prop>
<prop key="runtime.log.error.stacktrace">true</prop>
<prop key="runtime.log.invalid.reference">true</prop>
</props>
</property>
</bean>
<!-- ========邮件发送引擎========== -->
<bean id="mailEngine" class="com.util.mail.MailEngine">
<property name="velocityEngine" ref="velocityEngine"/>
<property name="mailSender" ref="mailSender"/>
<property name="from" value="${mail.from}"/>
</bean>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${mail.host}" />
<property name="username" value="${mail.username}" />
<property name="password" value="${mail.password}" />
<property name="defaultEncoding" value="${mail.defaultEncoding}" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
</bean>
3. 方法处理
/**
* 根据vm模板发送邮件
* <功能详细描述>
* @param templatepath 引用的模板
* @param map 配置模板取值
* @param subject 邮件主题
* @param from 发件人
* @param toUser 收件人
* @param ccUser 抄送人
* @param paramString5
* @param paramArrayOfString2
* @param arrayOfFile 附件文件
* @param paramBoolean
* @return
* @see [类、类#方法、类#成员]
*/
public String sendTemplateMail(String templatepath, Map<String, Object> map, String subject,
String from, String[] toUser, String ccUser, String paramString5,
String[] paramArrayOfString2, File[] arrayOfFile, boolean paramBoolean)
{
String content = null;
String v_subject = subject;
try
{
content = VelocityEngineUtils.mergeTemplateIntoString(this.velocityEngine, templatepath, map);
if (subject == null)
{
Parser parser = Parser.createParser(content, "UTF-8");
HtmlPage localHtmlPage = new HtmlPage(parser);
parser.visitAllNodesWith(localHtmlPage);
v_subject = localHtmlPage.getTitle();
}
}
catch (Throwable e)
{
logger.error("Email template processing error, Check log for detail infomation. Template path: " + templatepath+e.getMessage());
return null;
}
return sendMimeMessage(from,toUser, ccUser,paramString5, v_subject,content,paramArrayOfString2,arrayOfFile,paramBoolean);
}
4.调用方法
例:
MailEngine mailEngine = (MailEngine)SpringContextHelper.getBean("mailEngine");
Map map = new HashMap();
map.put("username", "wangjun");
map.put("content", "content");
map.put("curDateStr", new Date());
mailEngine.sendTemplateMail("mail/flowMail.vm", map,"测试邮件",null,new String[]{"test@xx.net"}, null, null, null, null, false);