java发送邮件(4)

    我们的邮箱里,经常会收到一些非常精美的邮件(网站注册用户名发来的邮件,甚至有一些广告邮件),我们知道这些邮件都是一些HTML邮件,但是我们知道,要做出这样一个精美的HTML邮件,在程序中,我们得拼多少HTML和CSS代码啊,岂不是很烦。自从用了spring mail的邮件模板,妈妈再也不用担心我要拼网页代码啦。哈哈,没刹住啊。言归正传,这不是一句空话,利用spring mail的模板功能,我们可以在模板里写出HTML邮件,不用在发送邮件的程序里面去拼代码,而且更换邮件模板也变得非常简单。

    spring mail利用模板发送邮件,主要用的的类当然,第三讲里讲的发送HTML邮件的JavaMailSenderImpl、MimeMessage和MimeMessageHelper这三个类是必须要的了,除此之外还要用到一个产生模板的类org.springframework.ui.velocity.VelocityEngineFactoryBean和模板类org.apache.velocity.app.VelocityEngine。这两个关系如下图:


   发送模板邮件的代码如下所示:

   程序代码:

public class SpringMailSender {
	private VelocityEngine velocityEngine; 
	
	private JavaMailSenderImpl mailSender;
	
	public SpringMailSender() {
        mailSender = new JavaMailSenderImpl();
    	
    	mailSender.setHost("smtp.qq.com");
    	mailSender.setUsername("249745552@qq.com");
    	mailSender.setPassword("linlinjiahong21");
    	
		Properties prop = System.getProperties();
		
		prop.put("resource.loader", "class");
		prop.put("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
		
		VelocityEngineFactoryBean v = new VelocityEngineFactoryBean();
		v.setVelocityProperties(prop);
		
		try {
			velocityEngine = v.createVelocityEngine();
		} catch (VelocityException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void templateSend() throws MessagingException {
		Map<String, String> model = new HashMap<String, String>();
		// 邮件模板中参数进行传入
		model.put("user", "zhaojiahong");
		model.put("content", "Welcome");
		// 把邮件模板代码变换为String类型备用
		String emailText = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "index.vm", model);
		
		MimeMessage msg = mailSender.createMimeMessage();
		
		MimeMessageHelper helper = new MimeMessageHelper(msg, true);
		
		helper.setFrom(mailSender.getUsername());
	        helper.setTo("zhao.jiahong@yahoo.com");
	        helper.setSubject("model mail");
	    
	        helper.setText(emailText, true);
	    
	        mailSender.send(msg);
	}
	
	public static void main(String[] args) throws MessagingException {
		SpringMailSender sender = new SpringMailSender();
		
		sender.templateSend();
	}
    
}

    邮件模板代码:

<html> 
<head> 
<style type="text/css"> 
h4{  
color:red;  
background:#efefef;  
}  
</style> 
</head> 
<body> 
<h4>${user} </h4> 
<p><p> 
<i>${content}</i> 
</body> 
</html> 
   把邮件模板放进一个index.vm文件中,放在src目录下即可。


   这样,我们就完成了一个模板邮件的发送,如果我们要更换邮件模板,只需要更换index.vm文件即可,代码是不需要改动的。我们也可以做出好几个模板,在不同的情况下进行切换。从而方便快捷的发送各种精美的HTML邮件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值