- 需要两个jar包mail.jar和velocity-1.5.jar。
- 在Spring的注入文件中加两个
<bean id="sendMailUtils" class="com.core.utils.SendMailUtils"> <property name="mailSender" ref="mailSender"></property> <property name="velocityEngine" ref="velocityEngine"></property> </bean> <!--<bean id="velocityEngine" class="org.apache.velocity.app.VelocityEngine"></bean>--> <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean"> <property name="velocityProperties"> <value> resource.loader=class class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader </value> </property> </bean>
- Java代码就直接贴上了,挺简单的。
@Component public class SendMailUtils { private JavaMailSender mailSender; private VelocityEngine velocityEngine; @Autowired public void setMailSender(JavaMailSender mailSender) { this.mailSender = mailSender; } @Autowired public void setVelocityEngine(VelocityEngine velocityEngine) { this.velocityEngine = velocityEngine; } public void sendEmail(final Map<String, Object> model, final String subject, final String vmfile, final Map<String, String> files, final String...mailTo) { MimeMessagePreparator preparator = new MimeMessagePreparator() { // 注意MimeMessagePreparator接口只有这一个回调函数 public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "GBK"); // 这是一个生成Mime邮件简单工具,如果不使用GBK这个,中文会出现乱码 // 如果您使用的都是英文,那么可以使用MimeMessageHelper message = new // MimeMessageHelper(mimeMessage); message.setTo(mailTo);// 设置接收方的email地址 message.setSubject(subject);// 设置邮件主题 message.setFrom("*****");// 设置发送方地址 String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, vmfile, "GBK", model); // 从模板中加载要发送的内容,vmfile就是模板文件的名字 // 注意模板中有中文要加GBK,model中存放的是要替换模板中字段的值 message.setText(text, true); // 将发送的内容赋值给MimeMessageHelper,后面的true表示内容解析成html // 如果您不想解析文本内容,可以使用false或者不添加这项 FileSystemResource file; for (Iterator<String> iterator = files.keySet().iterator(); iterator.hasNext();) {// 添加附件 String fileName = (String) iterator.next(); file = new FileSystemResource(new File(files.get(fileName)));// 读取附件 message.addAttachment(MimeUtility.encodeWord(fileName), file);// 向email中添加附件,解决乱码问题 } } }; mailSender.send(preparator);// 发送邮件 } }
Spring 发送Email
最新推荐文章于 2022-04-28 23:26:23 发布