package com.moral.monitor.listener.message;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import javax.mail.Session;
|
import javax.mail.Transport;
|
import javax.mail.internet.InternetAddress;
|
import javax.mail.internet.MimeMessage;
|
import java.util.Date;
|
import java.util.Properties;
|
/**
|
* Created by a on 2017/3/13.
|
*/
|
public class Mail implements Runnable {
|
private Logger logger = LoggerFactory.getLogger(Mail.class);
|
private String receiveMail;
|
private String msg;
|
public final static String myEmailAccount = "331641859@qq.com";
|
public final static String myEmailPassword = "cbblvtoaitqgcaec";
|
public final static String myEmailSMTPHost = "smtp.qq.com";
|
public final static String smtpPort = "465";
|
public final static Properties props = new Properties();
|
static {
|
props.setProperty("mail.transport.protocol", "smtp");
|
props.setProperty("mail.smtp.host", myEmailSMTPHost);
|
props.setProperty("mail.smtp.auth", "true");
|
props.setProperty("mail.smtp.socketFactory.port", smtpPort);
|
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
|
props.setProperty("mail.smtp.socketFactory.fallback", "false");
|
}
|
|
public void run() {
|
try {
|
long ssatime = new Date().getTime();
|
email(receiveMail, msg);
|
long esatime = new Date().getTime();
|
logger.warn(" 邮件报警耗时 " + (esatime - ssatime) + "==========" + Thread.currentThread().getName() + "=========");
|
} catch (Exception e) {
|
e.printStackTrace();
|
logger.warn("邮件发送失败" + e.getMessage());
|
}
|
}
|
|
public static void email(String receiveMail, String msg) throws Exception {
|
String content = msg;
|
Session session = Session.getDefaultInstance(props);
|
session.setDebug(true);
|
MimeMessage message = createMimeMessage(session, myEmailAccount, receiveMail, content);
|
Transport transport = session.getTransport();
|
transport.connect(myEmailAccount, myEmailPassword);
|
transport.sendMessage(message, message.getAllRecipients());
|
transport.close();
|
}
|
|
public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail, String content) throws Exception {
|
MimeMessage message = new MimeMessage(session);
|
message.setFrom(new InternetAddress(sendMail, "摩瑞尔", "UTF-8"));
|
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail));
|
message.setSubject("工业软件报警提醒", "UTF-8");
|
message.setContent(content, "text/html;charset=UTF-8");
|
message.setSentDate(new Date());
|
message.saveChanges();
|
return message;
|
}
|
|
public Mail(String receiveMail, String msg) {
|
this.receiveMail = receiveMail;
|
this.msg = msg;
|
}
|
}
|