class="java" name="code">public final class Mail {
/**
* 日志跟踪器
*/
private static final Logger LOGGER = LoggerFactory.getLogger(Mail.class);
/** 发送邮件的服务器的IP*/
private String host;
/** 邮件发送者的地址*/
private String from;
/** 发件人昵称*/
private String nick;
/** 邮件接收者的地址*/
private String to;
/** 邮件主题*/
private String subject;
/** 邮件的文本内容*/
private String body;
/** 发送邮件的服务器的端口*/
private String port;
private EmailAutherticator auth;
private static Mail instance = null;
private Mail() {
init();
}
private void init() {
final String emailAddress = "*****";//邮箱地址
final String emailPwd = "****";//邮箱:设置-》账号开启IMAP/SMTP服务的密码
final EmailAutherticator emailAuth = new EmailAutherticator(emailAddress, emailPwd);
host = "";
from = "***";//邮箱地址
nick = "****";//标题
port = "465";
this.setAuth(emailAuth);
this.setHost(host);
this.setNick(nick);
this.setFrom(from);
this.setPort(port);
}
/**
* 获得对象
* @return
*/
public static Mail getInstance() {
synchronized(Mail.class){
if (instance == null) {
instance = new Mail();
}
}
return instance;
}
public String transferChinese(final String strText) {
String tempText = "";
try {
tempText = MimeUtility.encodeText(new String(strText.getBytes(), "UTF-8"), "UTF-8", "B");
} catch (Exception e) {
LOGGER.error("编码异常:{}",e.getMessage(), e);
}
return tempText;
}
/**
* 发送邮件
* @throws MessagingException
* @throws UnsupportedEncodingException
* @throws Exception
*/
public void sendMail() throws MessagingException, UnsupportedEncodingException {
final Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.port", port);
props.setProperty("mail.smtp.socketFactory.port", port);
final Session session = Session.getDefaultInstance(props, auth);
final MimeMessage message = new MimeMessage(session);
message.setContent("Hello", "text/plain");
message.setSubject(subject, "utf-8");// 设置邮件主题
message.setSentDate(DateUtil.getNow());// 设置邮件发送时期
final Address address = new InternetAddress(from, nick, "utf-8");
message.setFrom(address);// 设置邮件发送者的地址
if(to.length() <= 0){
LOGGER.warn("邮件接收者的地址为空");
return;
}
final Address toaddress = new InternetAddress(to);// 设置邮件接收者的地址
message.addRecipient(Message.RecipientType.TO, toaddress);
// 创建一个包含HTML内容的MimeBodyPart
final Multipart mainPart = new MimeMultipart();
final BodyPart html = new MimeBodyPart();
html.setContent(body, "text/html; charset=utf-8");
mainPart.addBodyPart(html);
// 将MiniMultipart对象设置为邮件内容
message.setContent(mainPart);
try {
Transport.send(message);
} catch (MessagingException e) {
LOGGER.error("Send Email founds error!",e);
}
}
/**
* 获取发送邮件的服务器的IP
* @return host
*/
public String getHost() {
return host;
}
/**
* 设置发送邮件的服务器的IP
* @param host
*/
public void setHost(final String host) {
this.host = host;
}
/**
* 获取邮件发送者的地址
* @return from
*/
public String getFrom() {
return from;
}
/**
* 设置邮件发送者的地址
* @param from
*/
public void setFrom(final String from) {
this.from = from;
}
/**
* 获取发件人昵称
* @return nick
*/
public String getNick() {
return nick;
}
/**
* 设置发件人昵称
* @param nick
*/
public void setNick(final String nick) {
this.nick = nick;
}
/**
* 获取邮件接收者的地址
* @return to
*/
public String getTo() {
return to;
}
/**
* 设置邮件接收者的地址
* @param to
*/
public void setTo(final String to) {
this.to = to;
}
/**
* 获取邮件主题
* @return subject
*/
public String getSubject() {
return subject;
}
/**
* 设置邮件主题
* @param subject
*/
public void setSubject(final String subject) {
this.subject = subject;
}
/**
* 获取邮件的文本内容
* @return body
*/
public String getBody() {
return body;
}
/**
* 设置邮件的文本内容
* @param body
*/
public void setBody(final String body) {
this.body = body;
}
/**
* 获取发送邮件的服务器的端口
* @return port
*/
public String getPort() {
return port;
}
/**
* 设置发送邮件的服务器的端口
* @param port
*/
public void setPort(final String port) {
this.port = port;
}
/**
* 获取auth
* @return auth
*/
public EmailAutherticator getAuth() {
return auth;
}
/**
* 设置auth
* @param auth
*/
public void setAuth(EmailAutherticator auth) {
this.auth = auth;
}
public void readActiveMailMsg() {
this.readMsg("/res/mail.msg");
}
/**
* 读取消息
* @param filename
*/
private void readMsg(final String filename) {
final StringBuilder sb = new StringBuilder();
final InputStream fis = Mail.class.getResourceAsStream(filename);
InputStreamReader isr = null;
try {
isr = new InputStreamReader(fis, "UTF-8");
} catch (UnsupportedEncodingException e1) {
LOGGER.error("读取文件遇见不正确的文件编码,{}!", e1.getMessage(), e1);
}
final BufferedReader br = new BufferedReader(isr);
String line = "";
try {
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
final String msg = sb.toString();
setBody(msg);
}
}
??EmailAutherticator类:
public class EmailAutherticator extends Authenticator {
private String username;
private String password;
public EmailAutherticator(String user, String pwd) {
super();
username = user;
password = pwd;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
?