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

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

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

    隨筆-51  評論-14  文章-0  trackbacks-0

     

    package org.hank.mail;

    import java.util.Properties;

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

    public class Mail {
     
    //  21-30行把本程序所用變量進行定義。 具體在main中對它們賦植。
     private MimeMessage mimeMsg; // MIME郵件對象
     private Session session; // 郵件會話對象
     private Properties props; // 系統屬性
     private boolean needAuth = false// smtp是否需要認證
     private String username = ""// smtp認證用戶名和密碼
     private String password = "";
     
    private Multipart mp; // Multipart對象,郵件內容,標題,附件等內容均添加到其中后再生成//MimeMessage對象
     public Mail(String smtp)
     {
       setSmtpHost(smtp);
       createMimeMessage();
     }
     
     
    public void setSmtpHost(String hostName)
     {
       System.out.println(
    "設置系統屬性:mail.smtp.host = " + hostName);
       
    if (props == null)
        props 
    = System.getProperties(); // 獲得系統屬性對象
       props.put("mail.smtp.host", hostName); // 設置SMTP主機
     }
     
     
    public boolean createMimeMessage()
     {
       
    try {
        System.out.println(
    "準備獲取郵件會話對象!");
        session 
    = Session.getDefaultInstance(props, null); // 獲得郵件會話對象
       }
       
    catch (Exception e)
       {
        System.err.println(
    "獲取郵件會話對象時發生錯誤!" + e);
        
    return false;
       }
       System.out.println(
    "準備創建MIME郵件對象!");
       
    try {
        mimeMsg 
    = new MimeMessage(session); // 創建MIME郵件對象
        mp = new MimeMultipart(); // mp 一個multipart對象
        
    // Multipart is a container that holds multiple body parts.
        return true;
       }
       
    catch (Exception e)
       {
        System.err.println(
    "創建MIME郵件對象失敗!" + e);
        
    return false;
       }
     }

     
    public void setNeedAuth(boolean need) {
        System.out.println(
    "設置smtp身份認證:mail.smtp.auth = " + need);
        
    if (props == null)
         props 
    = System.getProperties();
        
    if (need) {
         props.put(
    "mail.smtp.auth""true");
        } 
    else {
         props.put(
    "mail.smtp.auth""false");
        }
     }
     
     
    public void setNamePass(String name, String pass)
     {
       System.out.println(
    "程序得到用戶名與密碼");
       username 
    = name;
       password 
    = pass;
     }
     
     
    public boolean setSubject(String mailSubject) {
        System.out.println(
    "設置郵件主題!");
        
    try {
         mimeMsg.setSubject(mailSubject);
         
    return true;
        }
        
    catch (Exception e) {
         System.err.println(
    "設置郵件主題發生錯誤!");
         
    return false;
        }
     }
     
     
    public boolean setBody(String mailBody)
     {
       
    try
       {
        System.out.println(
    "設置郵件體格式");
        BodyPart bp 
    = new MimeBodyPart();
        bp.setContent(
          
    "<meta http-equiv=Content-Type content=text/html; charset=gb2312>"
          
    + mailBody, "text/html;charset=GB2312");
        mp.addBodyPart(bp);
        
    return true;
       }
       
    catch (Exception e)
       {
        System.err.println(
    "設置郵件正文時發生錯誤!" + e);
        
    return false;
       }
     }
     
    public boolean addFileAffix(String filename) {
        System.out.println(
    "增加郵件附件:" + filename);
        
    try {
         BodyPart bp 
    = new MimeBodyPart();
         FileDataSource fileds 
    = new FileDataSource(filename);
         bp.setDataHandler(
    new DataHandler(fileds));
         bp.setFileName(fileds.getName());
         mp.addBodyPart(bp);
         
    return true;
        }
        
    catch (Exception e) {
         System.err.println(
    "增加郵件附件:" + filename + "發生錯誤!" + e);
         
    return false;
        }
     }
     
     
    public boolean setFrom(String from) {
        System.out.println(
    "設置發信人!");
        
    try {
         mimeMsg.setFrom(
    new InternetAddress(from)); // 設置發信人
         return true;
        }
        
    catch (Exception e)
        {
         
    return false;
        }
     }
     
     
    public boolean setTo(String to)
     {
       System.out.println(
    "設置收信人");
       
    if (to == null)
        
    return false;
       
    try
       {
        mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
          .parse(to));
        
    return true;
       }
       
    catch (Exception e)
       {
        
    return false;
       }
     }

     
    public boolean setCopyTo(String copyto)
     {
       System.out.println(
    "發送附件到");
       
    if (copyto == null)
        
    return false;
       
    try {
        mimeMsg.setRecipients(Message.RecipientType.CC,
          (Address[]) InternetAddress.parse(copyto));
        
    return true;
       }
       
    catch (Exception e)
       {
        
    return false;
       }
     }

     
    public boolean sendout()
     {
       
    try
       {
        mimeMsg.setContent(mp);
        mimeMsg.saveChanges();
        System.out.println(
    "正在發送郵件.");
        Session mailSession 
    = Session.getInstance(props, null);
        Transport transport 
    = mailSession.getTransport("smtp"); // ???
        transport.connect((String) props.get("mail.smtp.host"), username,
          password);
        transport.sendMessage(mimeMsg, mimeMsg
          .getRecipients(Message.RecipientType.TO));
        
    // transport.send(mimeMsg);
        System.out.println("發送郵件成功!");
        transport.close();
        
    return true;
       }
       
    catch (Exception e)
       {
        System.err.println(
    "郵件發送失敗!" + e);
        
    return false;
       }
     }

     
    public static void main(String[] args)
     {
       String mailbody 
    = "http://www.laabc.com 用戶郵件注冊測試 <font color=red>歡迎光臨</font> <a href=\"http://www.laabc.com\">啦ABC</a>";
       Mail themail = new Mail("smtp.163.com");
       themail.setNeedAuth(
    true);
       
    if (themail.setSubject("laabc.com郵件測試"== false)
        
    return;
       
    //郵件內容 支持html 如 <font color=red>歡迎光臨</font> <a href=\"http://www.laabc.com\">啦ABC</a>
       if (themail.setBody(mailbody) == false)
        
    return;
       
    //收件人郵箱
       if (themail.setTo("aaa@163.com"== false)
        
    return;
       
    //發件人郵箱
       if (themail.setFrom("bbb@163.com"== false)
        
    return;
       
    //設置附件
       
    //if (themail.addFileAffix("#######") == false)
        
    //return; // 附件在本地機子上的絕對路徑
       
    //以下帳號信息為發件人郵箱
       themail.setNamePass("用戶名""密碼"); // 用戶名與密碼
       if (themail.sendout() == false)
        
    return;
     }
     
    }

    posted on 2008-04-30 13:19 Hank1026 閱讀(139) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲美女中文字幕| 日韩在线视精品在亚洲| 亚洲电影中文字幕| 亚洲日韩看片无码电影| 在线免费观看伊人三级电影| 成人免费一级毛片在线播放视频 | 亚洲一级片免费看| 亚洲美女视频一区二区三区| 久久免费公开视频| 免费萌白酱国产一区二区| 中文字幕在线观看亚洲| 99久在线国内在线播放免费观看| 亚洲欧洲久久av| 亚洲欧洲无卡二区视頻| 四虎成人免费影院网址| 久久亚洲中文字幕精品有坂深雪 | 久久亚洲精品成人无码网站| 日本在线看片免费人成视频1000| 久久精品国产亚洲AV大全| 久久久久久夜精品精品免费啦| 好吊妞视频免费视频| 老牛精品亚洲成av人片| 亚洲成a人一区二区三区| 亚洲av成人综合网| 18pao国产成视频永久免费| 国产精品亚洲玖玖玖在线观看| 亚洲人成网亚洲欧洲无码| 四虎永久成人免费| 中文字幕免费在线视频| 亚洲第一网站男人都懂| 久久九九全国免费| 亚洲AV无码精品色午夜在线观看| 成人特级毛片69免费观看| 日本特黄特色aa大片免费| 亚洲中文无码mv| 午夜免费福利网站| 中文字幕乱码亚洲无线三区| 男人的好免费观看在线视频| 亚洲人成7777| 精品久久洲久久久久护士免费| 和老外3p爽粗大免费视频|