java mail 通过 freemarker 发送邮件
来源:互联网 发布:老挝文字翻译软件 编辑:程序博客网 时间:2024/05/13 21:24
java mail 通过 freemarker 发送邮件
理解 java mail 核心类:
1). MimeMessage 对象就是一封邮件。
2). Session 定义系统属性信息。具体代码如下:
1). controller 层代码如下:
package com.tarena.mail.controller;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.tarena.mail.service.SendEmail;@RequestMapping("/email")@Controllerpublic class MailController { private Logger logger = Logger.getLogger(MailController.class); @Autowired private SendEmail sendEmail; @RequestMapping("/sendEmail") public void sendEmail(){ logger.debug("enter sendEamil method..."); sendEmail.sendMail(); logger.debug("exit sendEmail method..."); }}
2). service 层代码如下:
package com.tarena.mail.service;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.Properties;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.mail.javamail.MimeMessageHelper;import org.springframework.stereotype.Service;import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;import com.tarena.freemarker.dto.User;import com.tarena.mail.config.ConfigMessage;import com.tarena.mail.controller.MailController;import com.tarena.mail.dto.Mail_authenticator;import freemarker.template.Template;import freemarker.template.TemplateException;@Servicepublic class SendEmail { private Logger logger = Logger.getLogger(MailController.class); @Autowired private FreeMarkerConfigurer freemarker; public void sendMail() { // 发件人地址 String from = "zhaoxiaoyu@yundaex.com"; // 收件人地址 String to = "787029866@qq.com"; // 设定系统属性 Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host", ConfigMessage.getProperty("mail.smtp.host")); properties.put("mail.smtp.port", ConfigMessage.getProperty("mail.smtp.port")); properties.put("mail.smtp.auth", ConfigMessage.getProperty("mail.smtp.auth")); // 获取网络连接 授权 Mail_authenticator auth = new Mail_authenticator("zhaoxiaoyu@yundaex.com", "Yd123456"); // 获取 mail session 对象 Session session = Session.getInstance(properties, auth); // 创建 消息 对象 MimeMessage message = new MimeMessage(session); try { // 创建 MimeMessageHelper 对象 MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(message, true, "utf-8"); // 设置发件人地址 mimeMessageHelper.setFrom(new InternetAddress(from)); // 设置收件人地址 mimeMessageHelper.setTo(new InternetAddress(to)); // 设置主题 mimeMessageHelper.setSubject("Hello world"); // message.setText("This is my first sending email by java mail."); // 获取模版对象 Template template = freemarker.getConfiguration().getTemplate("user.ftl"); // 准备的 model data Map<String, User> map = new HashMap<String, User>(); map.put("user", new User("Hellen", 20)); // 解析 模版和 数据 String content = FreeMarkerTemplateUtils.processTemplateIntoString(template, map); // file 本地路径下的文件 File file = new File("G:/chrome download/学生.xls"); // 添加附件 mimeMessageHelper.addAttachment("学生.xls", file); // 添加内嵌图片 mimeMessageHelper.addInline("picture", new File("E:/图片/美图图库/baby.jpg")); // 设置 消息内容 mimeMessageHelper.setText(content, true); // 发送消息 Transport.send(message); System.out.println("send email successfully..."); } catch (AddressException e) { e.printStackTrace(); logger.error(e.getMessage()); } catch (MessagingException e) { e.printStackTrace(); logger.error(e.getMessage()); } catch (IOException e) { e.printStackTrace(); logger.error(e.getMessage()); } catch (TemplateException e) { e.printStackTrace(); logger.error(e.getMessage()); } }}
- mail_authenticator dto 代码如下:
package com.tarena.mail.dto;import javax.mail.Authenticator;import javax.mail.PasswordAuthentication;public class Mail_authenticator extends Authenticator{ private String userName; private String password; public Mail_authenticator(String userName, String password) { super(); this.userName = userName; this.password = password; } public Mail_authenticator() { super(); } protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(userName, password) ; }}
- spring 配置文件如下:
<!-- 配置 freemarker 模版加载路径 --><bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="ui/template" /> <property name="defaultEncoding" value="UTF-8" /></bean><!-- freemarker视图解析器 --><bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="suffix" value=".ftl" /> <property name="contentType" value="text/html;charset=UTF-8" /> <!-- 此变量值为pageContext.request, 页面使用方法:rc.contextPath --> <property name="requestContextAttribute" value="rc" /> <property name="order" value = "1" /></bean>
5). user.ftl 模版文件如下:
<html><head></head><body> <table border="2 red solid"> <tr> <td>username</td> <td>age</td> </tr> <tr> <td>${user.userName}</td> <td>${user.age}</td> </tr> </table> <div> <img src="cid:picture"/> </div></body></html>
0 0
- java mail 通过 freemarker 发送邮件
- 通过java mail发送邮件
- 通过JAVA发送邮件--mail.jar
- java mail 通过代理发邮件或直接发送邮件
- java mail 通过代理发邮件或直接发送邮件
- Java Mail 发送邮件
- JAVA MAIL发送邮件
- Java Mail 发送邮件
- Java mail发送邮件
- java mail 发送邮件
- Java Mail发送邮件
- java mail邮件发送
- java mail 发送邮件
- Java mail发送邮件
- java mail发送邮件
- Java mail 发送邮件
- java mail发送邮件
- java mail 发送邮件
- Android Studio导出Jar文件
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- shell 命令结果无法处理
- AngularJS(二)
- ThreadLocal工作原理
- java mail 通过 freemarker 发送邮件
- smith 圆图中的阻抗点和反射系数
- BroadcastReceiver在Activity中注册则要在其中注销
- 极大极小搜索
- VB Shell 函数
- pdo事务两个简单应用代码
- Java中的垃圾回收
- 常规面试技巧
- 关于junit和testng的比较