package common.mail;import java.util.*;import javax.activation.*;import javax.mail.*;import javax.mail.internet.*;import common.mail.Mail.MailInfor.Accessory;/** *//** * classname Mail * action 用于发送mail,借住163的smtp服务器 * @version 2007/7/26 * */public class Mail ...{ /** *//** * 内部类MailInor包函了发送邮件需要的基本信息 * 以属性方式需要对其进行配置 * */ class MailInfor ...{ /** *//** * constructor 无参 * action 对属性进行初始化 * */ MailInfor() ...{ setAccessory(false); } private String host = "smtp.163.com"; private String fromMail = "zhangliyang_good@163.com"; private List toMail; private String userName = "zhangliyang_good"; private String password = "xtgmybjjmh"; private String subject; private String content; private boolean isDebug = false; private boolean accessory; private List accessorys; public void setAccessorys(List accessList) ...{ this.accessorys = accessList; } public List getAccessorys() ...{ return this.accessorys; } public void setHost(String host) ...{ this.host = host; } public void setFromMail(String fromMail) ...{ this.fromMail = fromMail; } public void setToMail(List toMail) ...{ this.toMail = toMail; } public void setUserName(String userName) ...{ this.userName = userName; } public void setPassword(String password) ...{ this.password = password; } public void setSubject(String subject) ...{ this.subject = subject; } public void setContent(String content) ...{ this.content = content; } public String getHost() ...{ return host; } public String getFromMail() ...{ return fromMail; } public List getToMail() ...{ return toMail; } public String getUserName() ...{ return userName; } public String getPassword() ...{ return password; } public String getSubject() ...{ return subject; } public String getContent() ...{ return content; } public void setIsDebug(boolean isDebug) ...{ this.isDebug = isDebug; } public boolean isIsDebug() ...{ return isDebug; } public void setAccessory(boolean accessory) ...{ this.accessory = accessory; } public boolean isAccessory() ...{ return accessory; } /** *//** * 内部类Accessory用于发送附件,包函了发送附件需要的信息 * 以属性方式需要对其进行配置 * */ class Accessory ...{ private String fileUrl; private String fileName; public void setFileUrl(String fileUrl) ...{ this.fileUrl = fileUrl; } public String getFileUrl() ...{ return this.fileUrl; } public void setFileName(String fileName) ...{ this.fileName = fileName; } public String getFileName() ...{ return this.fileName; } } } public boolean sendMail(MailInfor infor) ...{ Properties props = new Properties(); props.put("mail.smtp.host", infor.getHost()); props.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props); //是否在控制台输出日志信息 session.setDebug(infor.isIsDebug()); MimeMessage message = new MimeMessage(session); try ...{ message.setFrom(new InternetAddress(infor.getFromMail())); List list = infor.getToMail(); if (list != null) ...{ Iterator iter = list.iterator(); while (iter.hasNext()) ...{ message.addRecipient(Message.RecipientType.TO, new InternetAddress( (String) iter.next())); } } else ...{ throw new NullPointerException("tomail is not null"); } message.setSubject(infor.getSubject()); MimeMultipart mm = new MimeMultipart(); //普通文本 BodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(infor.getContent(), "text/html;charset=gb2312"); //附件 if (infor.isAccessory()) ...{ List accessorys = infor.getAccessorys(); Iterator iter = accessorys.iterator(); BodyPart streamContent = null; DataSource dataSource = null; Accessory accessory = null; while (iter.hasNext()) ...{ streamContent = new MimeBodyPart(); accessory = (Accessory) iter.next(); dataSource = new FileDataSource(accessory.getFileUrl()); streamContent.setDataHandler(new DataHandler(dataSource)); streamContent.setFileName(accessory.getFileName()); mm.addBodyPart(streamContent); } } //填加相应的属性 mm.addBodyPart(htmlPart); message.setContent(mm); message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect(infor.getHost(), infor.getUserName(), infor.getPassword()); transport.sendMessage(message, message.getAllRecipients()); transport.close(); } catch (Exception e) ...{ e.printStackTrace(); return false; } return true; } //示例 public static void main(String[] args) ...{ Mail mail = new Mail(); MailInfor infor = mail.new MailInfor(); List list = new ArrayList(); list.add("aaaaa@163.com"); infor.setToMail(list); infor.setSubject("你好"); infor.setContent("......................"); infor.setFromMail("aaaaa@163.com"); infor.setUserName("aaaaa"); infor.setPassword("123456"); infor.setAccessory(true); //填加附件 list = new ArrayList(); for (int i = 0; i < 2; i++) ...{ Accessory accessory = infor.new Accessory(); accessory.setFileName("bb.jpg"); accessory.setFileUrl( "c:/{D940ED42-3EDC-430B-ACE2-2764187EBFED}0.jpg"); list.add(accessory); } infor.setAccessorys(list); if (mail.sendMail(infor)) ...{ System.out.println("成功"); } }}