<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天堂久久| 免费看少妇高潮成人片| 日韩吃奶摸下AA片免费观看| 亚洲国产精品高清久久久| 国产无遮挡又黄又爽免费网站| 亚洲成a人片在线观看天堂无码| 亚洲自偷自偷在线成人网站传媒| 亚洲制服丝袜精品久久| 免费国产在线观看不卡| 国产成人亚洲综合| 18禁美女裸体免费网站| 亚洲AV无码男人的天堂| 久久久久亚洲精品中文字幕| 国产成年无码久久久免费| 日韩高清在线免费观看| 一区二区三区AV高清免费波多| 国产免费久久精品99久久| 亚洲欧美国产国产综合一区| 亚洲伊人成无码综合网| 免费无码又爽又刺激高潮软件| 国产在线观看无码免费视频| 亚洲精品无码不卡| 亚洲男人的天堂一区二区| 国产精品免费观看久久| 亚洲v高清理论电影| 最近高清中文字幕无吗免费看| 免费人成在线观看播放a| 91精品成人免费国产片| 黄色网址免费观看| 日韩大片免费观看视频播放| eeuss草民免费| 免费国产一级特黄久久| 亚洲国产成人a精品不卡在线| 久久综合给合久久国产免费| 日韩一卡2卡3卡4卡新区亚洲| 无码天堂va亚洲va在线va| 在线亚洲高清揄拍自拍一品区| 国产亚洲成av片在线观看| 久久被窝电影亚洲爽爽爽| 国产精品久久久久久久久久免费| 黄色毛片免费网站|