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