java监控自动发邮件功能,基于126邮箱

来源:互联网 发布:优秀网络作家 编辑:程序博客网 时间:2024/05/08 08:17

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;


public class JavaMail {
 private MimeMessage mimeMsg;
 private Session session;
 private Properties props;
 private boolean needAuth;
 private String username;
 private String password;
 private Multipart mp;

 public JavaMail(String smtp) {
  needAuth = false;
  username = "";
  password = "";
  setSmtpHost(smtp);
  createMimeMessage();
 }

 public void setSmtpHost(String hostName) {
  if (props == null)
   props = System.getProperties();
  props.put("mail.smtp.host", hostName);
 }

 public boolean createMimeMessage() {
  try {
   session = Session.getDefaultInstance(props, null);
  } catch (Exception e) {
   return false;
  }
  try {
   mimeMsg = new MimeMessage(session);
   mp = new MimeMultipart();
  } catch (Exception e) {
   return false;
  }
  return true;
 }

 public void setNeedAuth(boolean need) {
  if (props == null)
   props = System.getProperties();
  if (need)
   props.put("mail.smtp.auth", "true");
  else
   props.put("mail.smtp.auth", "false");
 }

 public void setNamePass(String name, String pass) {
  username = name;
  password = pass;
 }

 public boolean setSubject(String mailSubject) {
  try {
   mimeMsg.setSubject(mailSubject);
  } catch (Exception e) {
   return false;
  }
  return true;
 }

 public boolean setBody(String mailBody) {
  try {
   BodyPart bp = new MimeBodyPart();
   bp.setContent(
     "<meta http-equiv=Content-Type content=text/html; charset=gb2312>"
       + mailBody, "text/html;charset=GB2312");
   mp.addBodyPart(bp);
  } catch (Exception e) {
   return false;
  }
  return true;
 }

 public boolean addFileAffix(String filename) {
  try {
   BodyPart bp = new MimeBodyPart();
   FileDataSource fileds = new FileDataSource(filename);
   bp.setDataHandler(new DataHandler(fileds));
   bp.setFileName(fileds.getName());
   mp.addBodyPart(bp);
  } catch (Exception e) {
   return false;
  }
  return true;
 }

 public boolean setFrom(String from) {
  try {
   mimeMsg.setFrom(new InternetAddress(from));
  } catch (Exception e) {
   return false;
  }
  return true;
 }

 public boolean setTo(String to) {
  if (to == null)
   return false;
  try {
   mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO,
     InternetAddress.parse(to));
  } catch (Exception e) {
   return false;
  }
  return true;
 }

 public boolean setCopyTo(String copyto) {
  if (copyto == null)
   return false;
  try {
   mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,
     InternetAddress.parse(copyto));
  } catch (Exception e) {
   return false;
  }
  return true;
 }

 public boolean sendout() {
  try {
   mimeMsg.setContent(mp);
   mimeMsg.saveChanges();
   Session mailSession = Session.getInstance(props, null);
   Transport transport = mailSession.getTransport("smtp");
   transport.connect((String) props.get("mail.smtp.host"), username,
     password);
   transport.sendMessage(mimeMsg, mimeMsg
     .getRecipients(javax.mail.Message.RecipientType.TO));
   transport.close();
  } catch (Exception e) {
   e.printStackTrace();
   return false;
  }
  return true;
 }

 public static void main(String[] args) throws Exception {
  JavaMail mailSender = new JavaMail("smtp.126.com");
  mailSender.setNeedAuth(true);
  mailSender.setSubject("告警告警:服务器空间满了");
  mailSender.setBody("服务器空间满了");
  mailSender.setTo("目的邮件地址");
  mailSender.setFrom("源邮件地址");
  mailSender.setNamePass("yezimengjuan", "password");
  mailSender.sendout();
  System.out.print("发送成功");
 }

}

 借鉴:http://blog.sina.com.cn/s/blog_50d936c40100dbui.html

0 0
原创粉丝点击