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

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

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

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    JavaMail(2)--發送帶附件的郵件

    Posted on 2009-05-31 00:40 啥都寫點 閱讀(960) 評論(0)  編輯  收藏 所屬分類: J2SE
    關鍵技術:
    • 發送帶附件的郵件時必須使用MimeMultipart和MimeBodyPart。MimeBodyPart可以存儲HTML子內容,也可以存儲二進制數據,如文件內容。
    • MimeBodyPart的setDataHandler方法能夠把DataHandler對象保存到郵件消息中,而用文件的File對象可以構造文件數據源FileDataSource,由FileDataSource可以構造DataHandler對象,所以,可以把文件內容設置到郵件消息中,此時文件便成了郵件的附件。
    • MimeBodyPart的setFileName方法給附件設置文件。

    package book.email;

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

    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;
    import javax.mail.internet.MimeUtility;

    /**
     * 發送帶附件的郵件
     
    */
    public class AttachmentMailSender {

        
    public static boolean sendMail(MailSenderInfo mailInfo) {
            
    // 判斷是否需要身份認證
            MyAuthenticator authenticator = null;
            
    if (mailInfo.isValidate()) {
                
    // 如果需要身份認證,則創建一個密碼驗證器
                authenticator = new MyAuthenticator(mailInfo.getUserName(),
                        mailInfo.getPassword());
            }
            
    // 根據郵件發送的屬性和密碼驗證器構造一個發送郵件的session
            Session sendMailSession = Session.getInstance(mailInfo
                    .getProperties(), authenticator);
            
    try {
                
    // 根據session創建一個郵件消息
                Message mailMessage = new MimeMessage(sendMailSession);
                
    // 創建郵件發送者地址
                Address from = new InternetAddress(mailInfo.getFromAddress());
                
    // 設置郵件消息的發送者
                mailMessage.setFrom(from);
                
    // 創建郵件的接收者地址,并設置到郵件消息中
                Address to = new InternetAddress(mailInfo.getToAddress());
                mailMessage.setRecipient(Message.RecipientType.TO,to);
                
    // 設置郵件消息的主題
                mailMessage.setSubject(mailInfo.getSubject());
                
    // 設置郵件消息發送的時間
                mailMessage.setSentDate(new Date());
                
                
    // MiniMultipart類是一個容器類,包含MimeBodyPart類型的對象
                Multipart mainPart = new MimeMultipart();
                
    // 創建一個包含HTML內容的MimeBodyPart
                BodyPart html = new MimeBodyPart();
                
    // 設置HTML內容
                html.setContent(mailInfo.getContent(), "text/html; charset=GBK");
                mainPart.addBodyPart(html);
                
    // 為郵件添加附件
                String[] attachFileNames = mailInfo.getAttachFileNames();
                
    if (attachFileNames != null && attachFileNames.length > 0) {
                    
    // 存放郵件附件的MimeBodyPart
                    MimeBodyPart attachment = null;
                    File file 
    = null;
                    
    for (int i = 0; i < attachFileNames.length; i++) {
                        attachment 
    = new MimeBodyPart();
                        
    // 根據附件文件創建文件數據源
                        file = new File(attachFileNames[i]);
                        FileDataSource fds 
    = new FileDataSource(file);
                        attachment.setDataHandler(
    new DataHandler(fds));
                        
    // 為附件設置文件名
                        attachment.setFileName(MimeUtility.encodeWord(file.getName(), "GBK",
                                
    null));
                        mainPart.addBodyPart(attachment);
                    }
                }
                
    // 將MiniMultipart對象設置為郵件內容
                mailMessage.setContent(mainPart);
                
    // 發送郵件
                Transport.send(mailMessage);
                
    return true;
                
            } 
    catch (Exception e) {
                e.printStackTrace();
                
    return false;
            }
        }
        
        
    public static void main(String[] args) {
            
    // 創建郵件信息
            MailSenderInfo mailInfo = new MailSenderInfo();
            mailInfo.setMailServerHost(
    "smtp.sina.com.cn");
            mailInfo.setMailServerPort(
    "25");
            mailInfo.setValidate(
    true);
            mailInfo.setUserName(
    "***");
            mailInfo.setPassword(
    "***");
            mailInfo.setFromAddress(
    "***@sina.com");
            mailInfo.setToAddress(
    "***@163.com");
            mailInfo.setSubject(
    "MyMail測試");
            mailInfo.setContent(
    "我的郵件測試\n\rMy test mail\n\r");

            String[] fileNames 
    = new String[3];
            fileNames[
    0= "C:/temp/new.txt";
            fileNames[
    1= "C:/temp/test.wav";
            fileNames[
    2= "C:/temp/mary_photo.jpg";
            mailInfo.setAttachFileNames(fileNames);
            
            AttachmentMailSender.sendMail(mailInfo);
        }
    }



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 中文字幕av无码不卡免费| 久久久久女教师免费一区| 久久福利资源网站免费看| 亚洲av女电影网| 无码专区AAAAAA免费视频| 97se亚洲综合在线| 亚洲一区二区免费视频| 亚洲一级毛片免观看| 啦啦啦在线免费视频| 极品美女一级毛片免费| 亚洲精品综合久久| 中国国产高清免费av片| 亚洲国产精品成人精品无码区 | 精品亚洲成a人片在线观看| 国产精品久久香蕉免费播放| 亚洲色无码专区一区| 国产男女性潮高清免费网站| 麻豆一区二区三区蜜桃免费| 激情97综合亚洲色婷婷五| 日韩免费的视频在线观看香蕉| 亚洲福利一区二区三区| 久久99亚洲网美利坚合众国| 曰批视频免费40分钟试看天天| 亚洲人成网站色在线观看| 国产不卡免费视频| 97在线免费视频| 亚洲伊人久久大香线蕉| 日韩一级免费视频| 和老外3p爽粗大免费视频| 亚洲综合一区二区精品久久| 麻豆国产入口在线观看免费| 一级毛片高清免费播放| 亚洲综合视频在线| 国产大片线上免费看| 久久国产精品免费网站| 国产午夜亚洲精品国产| 亚洲伊人久久大香线蕉综合图片| 69式国产真人免费视频| 一级毛片免费不卡| 中文字幕在线观看亚洲视频| 国产日产亚洲系列最新|