把JavaMail包装成简单的Sendmail

    技术2022-05-11  155

    package steeven;/*Calss:  SendmailAuthor: steeven@kali.com.cnQQ:     7461522Date:   11/13/2001Notes:        Find samples in main();        If you send mail only from/to intranet, change domain as u need.Setup:        1. change host, mailFooter*/import java.util.*;import java.sql.*;import javax.mail.*;import javax.mail.internet.*;import javax.activation.*;public class Sendmail extends Common{  public String host = "smtpServer";              //smtp server  static String mailFooter = "/n/n/n此邮件由WebMail发送 http://www/mail.jsp/n/n";  String domain = "company";  boolean sessionDebug;  Message msg;  Multipart multipart;  public Sendmail() throws Exception{    Properties props = System.getProperties();    props.put("mail.host", host);    props.put("mail.transport.protocol", "smtp");    Session session = Session.getDefaultInstance(props, null);    // Set debug on the Session so we can see what is going on    // Passing false will not echo debug info, and passing true    // will.    session.setDebug(sessionDebug);    // Instantiate a new MimeMessage and fill it with the    // required information.    msg = new MimeMessage(session);    msg.setSentDate(new java.util.Date());    multipart = new MimeMultipart();    msg.setContent(multipart);  }  public Sendmail(String to, String from, String subject, String body) throws Exception{    this();    this.setSendTo(to);    this.setFrom(from);    this.setSubject(subject);    this.setBody(body);  }  public Sendmail(String[] to, String from, String subject, String body) throws Exception{    this();    this.setSendTo(to);    this.setFrom(from);    this.setSubject(subject);    this.setBody(body);  }  public void setHost(String host) throws Exception{    this.host=host;  }  void setFrom(String from) throws Exception{    msg.setFrom(new InternetAddress(from+"@"+domain));  }  void setSendTo(String[] to) throws Exception{    for (int i=0;i<to.length;i++)      setSendTo(to[i]);  }  void setSendTo(String to) throws Exception{//        System.out.println("sending mail to :"+to[i]);    InternetAddress[] address = {new InternetAddress(to + "@"+domain)};    msg.setRecipients(Message.RecipientType.TO, address);  }  void setCopyTo(String[] to) throws Exception{    for (int i=0;to!=null && i<to.length;i++)      setCopyTo(to[i]);  }  void setCopyTo(String to) throws Exception{//        System.out.println("Copying mail to :"+to[i]);    InternetAddress[] address = {new InternetAddress(to +"@"+ domain)};    msg.setRecipients(Message.RecipientType.CC, address);  }  void setSubject(String subject) throws Exception{    sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();    msg.setSubject("=?GB2312?B?"+enc.encode(subject.getBytes())+"?=");  }  void setBody(String body) throws Exception{      MimeBodyPart messageBodyPart = new MimeBodyPart();      messageBodyPart.setText(body+mailFooter);      multipart.addBodyPart(messageBodyPart);  }  void setAttachFile(String fileName) throws Exception{    setAttachFile(fileName,fileName);  }  void setAttachFile(String fileName,String name) throws Exception{        MimeBodyPart messageBodyPart = new MimeBodyPart();        DataSource source = new FileDataSource(fileName);        messageBodyPart.setDataHandler(new DataHandler(source));        messageBodyPart.setFileName(name);        multipart.addBodyPart(messageBodyPart);  }  void setAttachFile(String[][] fileName) throws Exception{    for (int i=0;i<fileName.length;i++)      setAttachFile(fileName[i][0],fileName[i][1]);  }  public void send() throws Exception{      Transport.send(msg);  }  public static void main(String[] args) throws Exception{    Sendmail s= new Sendmail("steeven","steeven","测试附件","This is text body");    s.setAttachFile("index.jsp");    s.send();    // or simply:    new Sendmail("steeven","steeven","mail subject","mail text body").send();  }}


    最新回复(0)