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; } }