今天写完了一个关于使用模板发送邮件的代码,作为例子保存着,希望以后用得着,也希望能够帮助到需要帮助的人
以163网易邮箱为例,使用java发送邮件,发送以邮件时使用模板(.ftl文件转换为html)发送邮件内容,并附带上附件,可抄送给多个人。项目的结构目录如下
邮箱配置文件mail.properties参数如下
#mail sender settings
# for example: smtp.163.com
mail.server=smtp.163.com
#the sender mail
mail.sender=xxx@163.com
#the sender nickname
mail.nickname=
#sender mail username
mail.username=xxx@163.com
#sender mail password
mail.password=hpc2013210831xxx
模板mail.ftl如下
<div>
<span>${username},你好!</span>
<p>${content}</p>
</div>
邮件发送信息配置类ConfigLoader.java如下
package com.hpc.test.mail;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class ConfigLoader {
// 日志记录对象
private static Logger log = LoggerFactory.getLogger(ConfigLoader.class);
// 配置文件路径
private static String mailPath = "properties/mail.properties";
// 邮件发送SMTP主机
private static String server;
// 发件人邮箱地址
private static String sender;
// 发件人邮箱用户名
private static String username;
// 发件人邮箱密码
private static String password;
// 发件人显示昵称
private static String nickname;
static {
// 类初始化后加载文件
InputStream in = ConfigLoader.class.getClassLoader().getResourceAsStream(mailPath);
Properties props = new Properties();
try {
props.load(in);
} catch (IOException e) {
log.error("load mail setting error, please check the file path:" + mailPath);
log.error(e.toString(), e);
}
server = props.getProperty("mail.server"