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

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

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

    HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

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

      BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 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發件人(Email地址 發件人);
    public void set收件人(List<Email地址> 收件人);
    public void set抄送人(List<Email地址> 抄送人);
    public void set暗送人(List<Email地址> 暗送人);
    public void set郵件時間(Date time);
    public void set附件(List<File> files);
    public Email地址 get發件人();
    public List<Email地址> get收件人();
    public List<Email地址> get抄送人();
    public List<Email地址> get暗送人();
    public List<File> get附件();
    public Date get郵件時間();
    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地址 發件人;
    private String 主題;
    private String text;
    private BodyPart content;
    private List<Email地址> 抄送人;
    private List<Email地址> 收件人;
    private List<Email地址> 暗送人;
    private Date 郵件時間 ;
    private List<File> 附件;

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

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

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

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

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

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

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

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

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

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

    public void set郵件時間(Date time) {
        this.郵件時間 = 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郵件發送服務器
    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郵件發送服務器 {
    protected IMail 郵件;
    protected Session session;
    protected String send方式;

    public Abstract郵件發送服務器() {
      
    }

    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 發送郵件() {
        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郵件時間()==null?new Date():this.郵件.get郵件時間());
         multipart.addBodyPart(this.郵件.getContent());

         //添加發件人
         message.setFrom(郵件.get發件人().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發送郵件建造者
    import javax.mail.Session;


    public abstract class Abstract發送郵件建造者 {
    protected Abstract郵件發送服務器 mailServer;

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

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

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

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

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

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

    import javax.mail.Session;


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

    @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>發送郵件Director
    import javax.mail.Session;

    public class 發送郵件Director {
    Abstract發送郵件建造者 build;

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

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

    <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發件人(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("測試喲見呵呵","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發送郵件建造者 smtp = new Smtp發送郵件建造者();
        Properties 屬性配置    = new Properties();
        屬性配置.put("mail.smtp.host", "smtp.163.com");
        屬性配置.put("mail.smtp.auth", "true");
        Session session = Session.getInstance(屬性配置,new PasswordAuthenticator("xxxxx", "xxxxx"));
        發送郵件Director director = new 發送郵件Director(smtp);
        director.發送郵件建造(mail, session);
    }
    }



    </script>

    posted on 2007-08-13 18:58 helloworld2008 閱讀(1220) 評論(0)  編輯  收藏 所屬分類: java - 模式java
    主站蜘蛛池模板: 亚洲第一精品在线视频| 91成年人免费视频| 毛片免费全部免费观看| 亚洲日韩精品无码专区| 亚洲成年看片在线观看| 两个人看的www高清免费观看| 亚洲人成人无码网www国产| 亚洲不卡中文字幕无码| 亚洲精品无码久久久久久| 亚洲日韩在线第一页| 无码日韩精品一区二区免费暖暖| 亚洲一久久久久久久久| 亚洲午夜精品一级在线播放放 | 亚洲精品麻豆av| 久久A级毛片免费观看| 亚洲男人第一无码aⅴ网站| 99在线在线视频免费视频观看| 亚洲国产成人久久综合| 久久久久久久尹人综合网亚洲| AV片在线观看免费| 免费黄网站在线观看| 亚洲宅男天堂在线观看无病毒| 亚洲美女视频免费| 美女网站在线观看视频免费的 | 亚洲区小说区图片区| 国产电影午夜成年免费视频| 乱淫片免费影院观看| 亚洲人成77777在线观看网| 亚洲级αV无码毛片久久精品| 日本高清免费中文字幕不卡| 久久久免费的精品| 人妻无码中文字幕免费视频蜜桃 | 一级a性色生活片久久无少妇一级婬片免费放 | 手机看片久久国产免费| 久久久久久国产精品免费无码| 人妻无码中文字幕免费视频蜜桃| tom影院亚洲国产一区二区| 国产一精品一AV一免费孕妇| 国产午夜无码精品免费看| 亚洲日本国产精华液| 亚洲av无码av制服另类专区|