这是邮件系列文章的完结篇了,最后一次我用spring发送HTML格式的邮件,邮件里嵌套图片,并带有附件功能。
程序测试过了 发给搜狐就没问题,至于其它可能它比较严格,把邮件过滤掉了,我是用自己本地的服务器。
代码如下
package org.fantlam.spring;
import java.io.File;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
public class SpringMail2 {
public ApplicationContext ctx = null;
public SpringMail2() {
// 获取上下文
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
}
public void send() {
// 获取JavaMailSender bean
JavaMailSender sender = (JavaMailSender) ctx.getBean("mailSender");
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
MimeMessage mailMessage = senderImpl.createMimeMessage();
// 设置utf-8或GBK编码,否则邮件会有乱码
MimeMessageHelper messageHelper = null;
try {
messageHelper = new MimeMessageHelper(mailMessage, true, "utf-8");
} catch (MessagingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
messageHelper.setTo("fantlam@sohu.com");// 接收者
messageHelper.setFrom("fantlam@sina.com");// 发送者
messageHelper.setSubject("用spring发送邮件");// 主题
// 邮件内容,注意加参数true(注重这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,multipart模式)
messageHelper.setText("<html><head></head><body><h1>用spring发送HTML并带附件的邮件</h1><br><img src='a'/></body></html>",true);// 附件内容
messageHelper.addInline("a", new File("c:/1.jpg"));
File file = new File("c:/中文名字.rar");
// 这里的方法调用和插入图片是不同的,使用MimeUtility.encodeWord()来解决附件名称的中文问题
messageHelper.addAttachment(MimeUtility.encodeWord(file.getName()),file);
sender.send(mailMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new SpringMail2().send();
}
}
分享到:
相关推荐
6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. ...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
用Java编写的简单论坛引擎。 特征 对话 顶级类别; 类别内的木板(论坛)提供无限的嵌套支持; 董事会内的主题和主题内的帖子; 对主题和帖子的分页支持; 附件支持; 用于发布的简单图像附件库; 用户和角色...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...
5. **与其他框架的集成**:展示了Velocity如何与Spring、Struts等Java Web框架协同工作,以及在非Web环境中如邮件生成、XML处理的应用。 6. **社区与资源**:提供了Velocity社区的信息,包括邮件列表、文档和API,...
此外,Freemarker可以与Spring MVC、Sitemesh、Struts等框架集成,具体的集成代码可参考相关工程附件。 Freemarker的常用指令和语法包括: 1. 输出内容:使用`${…}`表示插值,Freemarker会替换花括号内的表达式并...
在Spring MVC中处理复杂的JSON格式数据,可以通过`@ResponseBody`直接返回Java对象,或者使用JSON库手动构建JSON字符串,但在复杂情况下推荐使用`ViewModel`配合`MappingJackson2JsonView`来保持代码的清晰和可维护...
Java EE 框架..................................................................................................................................................................................1 ...