<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    HelloWorld 善戰(zhàn)者,求之于勢(shì),不責(zé)于人;故能擇人而任勢(shì)。

    知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

      BlogJava :: 首頁(yè) ::  :: 聯(lián)系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評(píng)論 :: 0 Trackbacks

    <1>IMail 接口

    import java.io.File;
    import java.util.Date;
    import java.util.List;

    import javax.mail.BodyPart;

    public interface IMail {
    public void set主題(String 主題);
    public void setText(String Text);
    public void setCotnent(BodyPart content);
    public void set發(fā)件人(Email地址 發(fā)件人);
    public void set收件人(List<Email地址> 收件人);
    public void set抄送人(List<Email地址> 抄送人);
    public void set暗送人(List<Email地址> 暗送人);
    public void set郵件時(shí)間(Date time);
    public void set附件(List<File> files);
    public Email地址 get發(fā)件人();
    public List<Email地址> get收件人();
    public List<Email地址> get抄送人();
    public List<Email地址> get暗送人();
    public List<File> get附件();
    public Date get郵件時(shí)間();
    public String get主題();
    public String getText();
    public BodyPart getContent();
    }

    <2>Mail類
    import java.io.File;
    import java.util.Date;
    import java.util.List;

    import javax.mail.BodyPart;

    public class Mail implements IMail{
    private Email地址 發(fā)件人;
    private String 主題;
    private String text;
    private BodyPart content;
    private List<Email地址> 抄送人;
    private List<Email地址> 收件人;
    private List<Email地址> 暗送人;
    private Date 郵件時(shí)間 ;
    private List<File> 附件;

    public Email地址 get發(fā)件人() {
        return this.發(fā)件人;
    }

    public List<Email地址> get抄送人() {
        return this.抄送人;
    }

    public List<Email地址> get收件人() {
        return this.收件人;
    }

    public List<Email地址> get暗送人() {
        return this.暗送人;
    }

    public Date get郵件時(shí)間() {
        return this.郵件時(shí)間;
    }

    public List<File> get附件() {
        return this.附件;
    }

    public void set發(fā)件人(Email地址 發(fā)件人) {
        this.發(fā)件人 = 發(fā)件人;
    }

    public void set抄送人(List<Email地址> 抄送人) {
        this.抄送人 = 抄送人;
    }

    public void set收件人(List<Email地址> 收件人) {
        this.收件人 = 收件人;
    }

    public void set暗送人(List<Email地址> 暗送人) {
        this.暗送人 = 暗送人;
    }

    public void set郵件時(shí)間(Date time) {
        this.郵件時(shí)間 = time;
    }

    public void set附件(List<File> files) {
        this.附件 = files;
    }

    public BodyPart getContent() {
        return this.content;
    }

    public String getText() {
        return this.text;
    }

    public String get主題() {
        return this.主題;
    }

    public void setCotnent(BodyPart content) {
        this.content = content;
    }

    public void setText(String text) {
        this.text = text;
    }

    public void set主題(String 主題) {
        this.主題 = 主題;
    }
    }

    <3>Abstract郵件發(fā)送服務(wù)器
    import java.io.File;
    import java.util.Date;
    import java.util.List;

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

    public abstract class Abstract郵件發(fā)送服務(wù)器 {
    protected IMail 郵件;
    protected Session session;
    protected String send方式;

    public Abstract郵件發(fā)送服務(wù)器() {
      
    }

    protected InternetAddress[] getAddressByType(List<Email地址> list) throws Exception {
        if (list != null) {
         InternetAddress address[] = new InternetAddress[list.size()];
         for (int i = 0 ; i < list.size(); i++) {
          address[i] = list.get(i).toInternetAddress();
         }
         return address;
        }
        return null;
    }
    public void 發(fā)送郵件() {
        try {
         MimeMessage message = new MimeMessage(session);
         Multipart multipart = new MimeMultipart();
         message.setSubject(郵件.get主題(),"utf-8");
         if(郵件.getText() != null)
          message.setText(郵件.getText(),"utf-8");
         message.setSentDate(郵件.get郵件時(shí)間()==null?new Date():this.郵件.get郵件時(shí)間());
         multipart.addBodyPart(this.郵件.getContent());

         //添加發(fā)件人
         message.setFrom(郵件.get發(fā)件人().toInternetAddress());
       
         //添加收件人
         InternetAddress address[] = this.getAddressByType(this.郵件.get收件人());
         if (address != null)
          message.addRecipients(Message.RecipientType.TO,address);
         //添加抄送人
         address = this.getAddressByType(this.郵件.get抄送人());
         if (address != null)
          message.addRecipients(Message.RecipientType.CC,address);
         //添加暗送人
         address = this.getAddressByType(this.郵件.get暗送人());
         if (address != null)
          message.addRecipients(Message.RecipientType.BCC,address);
         //添加附件
         if (this.郵件.get附件() != null) {
          for (int i = 0; i < this.郵件.get附件().size(); i++) {
           File file = this.郵件.get附件().get(i);
           BodyPart messageBodyPart = new MimeBodyPart();  
           DataSource source = new FileDataSource(file);
           messageBodyPart.setDataHandler(new DataHandler(source));
           messageBodyPart.setFileName(MimeUtility.encodeWord(file.getName(),"UTF-8","Q"));
           multipart.addBodyPart(messageBodyPart);     
          }
         }
         message.setContent(multipart);
         if(send方式 == null)
          send方式 = "smtp";
         session.getTransport(send方式).send(message);
        } catch (Exception e) {
         e.printStackTrace();
        }
    }

    public Session    getSession() {
        return session;
    }
    public void setSession(Session session) {
        this.session = session;
    }
    public IMail get郵件() {
        return 郵件;
    }
    public void set郵件(IMail 郵件) {
        this.郵件 = 郵件;
    }

    }

    <4>Abstract發(fā)送郵件建造者
    import javax.mail.Session;


    public abstract class Abstract發(fā)送郵件建造者 {
    protected Abstract郵件發(fā)送服務(wù)器 mailServer;

    public Abstract發(fā)送郵件建造者() {
      
    }

    public abstract void 建造郵件(IMail mail);

    public abstract void 建造郵件session(Session session);

    public void 建造發(fā)送郵件() {
        this.mailServer.發(fā)送郵件();
    }
    }

    <5>Smtp郵件發(fā)送服務(wù)器
    public class Smtp郵件發(fā)送服務(wù)器 extends Abstract郵件發(fā)送服務(wù)器 {
    public Smtp郵件發(fā)送服務(wù)器() {
        this.send方式 = "smtp";
    }
    }

    <6>Smtp發(fā)送郵件建造者
    import java.util.Properties;

    import javax.mail.Session;


    public class Smtp發(fā)送郵件建造者 extends Abstract發(fā)送郵件建造者 {
    public Smtp發(fā)送郵件建造者() {
        this.mailServer = new Smtp郵件發(fā)送服務(wù)器();
    }

    @Override
    public void 建造郵件(IMail mail) {
        this.mailServer.set郵件(mail);  
    }

    @Override
    public void 建造郵件session(Session session) {
        this.mailServer.setSession(session);  
    }
    }

    <7>PasswordAuthenticator
    import javax.mail.Authenticator;
    import javax.mail.PasswordAuthentication;

    class PasswordAuthenticator extends Authenticator {

          private String username;
          private String password;

          public PasswordAuthenticator(String username, String password) {
              this.username = username;
              this.password = password;
          }

          protected PasswordAuthentication getPasswordAuthentication() {
              return new PasswordAuthentication(username, password);
          }

    }

    <8>Email地址
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeUtility;

    public class Email地址 {
    protected String 地址;

    protected String 地址顯示別名;

    public Email地址() {
      
    }

    public Email地址(String 地址, String 地址顯示別名){
        this.地址 = 地址;
        this.地址顯示別名 = 地址顯示別名;
    }

    public String get地址() {
        return 地址;
    }

    public void set地址(String 地址) {
        this.地址 = 地址;
    }

    public String get地址顯示別名() {
        return 地址顯示別名;
    }

    public void set地址顯示別名(String 地址顯示別名) {
        this.地址顯示別名 = 地址顯示別名;
    }

    public InternetAddress toInternetAddress() throws Exception {
        if (地址顯示別名 != null && !地址顯示別名.trim().equals("")) {
         return new InternetAddress(地址, MimeUtility.encodeWord(地址顯示別名,
           "utf-8", "Q"));
        }
        return new InternetAddress(地址);
    }
    }

    <9>發(fā)送郵件Director
    import javax.mail.Session;

    public class 發(fā)送郵件Director {
    Abstract發(fā)送郵件建造者 build;

    public 發(fā)送郵件Director(Abstract發(fā)送郵件建造者 build) {
        this.build = build;
    }

    public void 發(fā)送郵件建造(IMail mail, Session session) {
        this.build.建造郵件(mail);
        this.build.建造郵件session(session);
        this.build.建造發(fā)送郵件();
    }
    }

    <10>Client
    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Properties;

    import javax.mail.BodyPart;
    import javax.mail.Session;
    import javax.mail.internet.MimeBodyPart;

    public class Client {
    public static void main(String args[]) throws Exception {
        IMail mail = new Mail();
        mail.set主題("????");
        mail.set發(fā)件人(new Email地址("james_zhao_abm@163.com","趙成明"));
        List<Email地址> list = new ArrayList<Email地址>();
        list.add(new Email地址("jszhaochengming@hotmail.com","劉德華"));
        mail.set收件人(list);
        list    = new ArrayList<Email地址>();
        list.add(new Email地址("james_zhao_abm@163.com","純凈水"));
        list.add(new Email地址("jszhaochengming@hotmail.com","劉德華"));
        mail.set抄送人(list);
        BodyPart contentPart = new MimeBodyPart();
        contentPart.setHeader("Content-Transfer-Encoding",     "base64");   
        contentPart.setContent("測(cè)試喲見(jiàn)呵呵","text/html;charset=utf-8");
        mail.setCotnent(contentPart);
        List<File> listF = new ArrayList<File>();
        listF.add(new File("d:/??????2.rar"));
        mail.set附件(listF);
        Smtp發(fā)送郵件建造者 smtp = new Smtp發(fā)送郵件建造者();
        Properties 屬性配置    = new Properties();
        屬性配置.put("mail.smtp.host", "smtp.163.com");
        屬性配置.put("mail.smtp.auth", "true");
        Session session = Session.getInstance(屬性配置,new PasswordAuthenticator("xxxxx", "xxxxx"));
        發(fā)送郵件Director director = new 發(fā)送郵件Director(smtp);
        director.發(fā)送郵件建造(mail, session);
    }
    }



    </script>

    posted on 2007-08-13 18:58 helloworld2008 閱讀(1220) 評(píng)論(0)  編輯  收藏 所屬分類: java - 模式java
    主站蜘蛛池模板: 亚洲激情中文字幕| 亚洲无砖砖区免费| 日韩国产精品亚洲а∨天堂免| 久久久久久a亚洲欧洲aⅴ| 狠狠久久永久免费观看| 30岁的女人韩剧免费观看| 三年片免费观看大全国语| 久久久久亚洲国产AV麻豆| 亚洲免费在线观看视频| 亚洲国产精品成人精品无码区| 亚洲精品无码久久毛片| 青青青国产免费一夜七次郎| 香蕉97超级碰碰碰免费公| 无码免费一区二区三区免费播放| www一区二区www免费| 美女裸免费观看网站| 久久亚洲精品无码av| 亚洲人片在线观看天堂无码| 亚洲人成电影院在线观看| 777亚洲精品乱码久久久久久 | 噜噜嘿在线视频免费观看| 精品国产免费人成电影在线观看| 91在线视频免费观看| 亚洲免费日韩无码系列| 四虎影视久久久免费| 视频一区二区三区免费观看| 亚洲AV无码一区二区大桥未久| 亚洲天然素人无码专区| 亚洲一区二区三区在线观看网站| 亚洲成AV人片久久| 亚洲成av人片不卡无码| 亚洲午夜精品一区二区公牛电影院 | 亚洲精品免费在线| 久久综合亚洲色HEZYO社区| 亚洲三级电影网站| 久久亚洲国产成人精品性色| 亚洲视频日韩视频| 亚洲女人影院想要爱| 久久久久精品国产亚洲AV无码| 亚洲国产成人精品激情| 国产成人亚洲合集青青草原精品|