<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);
        }
    }



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 麻豆成人久久精品二区三区免费 | 91免费在线视频| 国产大片51精品免费观看| 亚洲三级视频在线观看| 国产h肉在线视频免费观看| 亚洲天堂中文字幕| 国产日韩久久免费影院 | 亚洲日韩精品国产一区二区三区| 在线成人爽a毛片免费软件| 亚洲成在人天堂在线| 久久久免费的精品| 亚洲精品在线视频观看| 免费无码一区二区| 亚洲AV无码不卡在线观看下载| 久久亚洲中文字幕无码| 国产美女无遮挡免费视频网站| 亚洲精品国产第一综合99久久| 国产美女做a免费视频软件| 美女视频黄频a免费| 中文字幕精品无码亚洲字| 永久在线观看免费视频| 亚洲一区二区中文| 18禁止看的免费污网站| 中文字幕在线日亚洲9| 午夜无遮挡羞羞漫画免费| 亚洲综合色区在线观看| 四虎影视在线看免费观看| 亚洲综合在线另类色区奇米| 久久国产乱子伦精品免费强| 高清在线亚洲精品国产二区| 一本一道dvd在线观看免费视频| 亚洲AV无码精品色午夜果冻不卡| 亚洲一区二区三区免费在线观看 | 亚洲三级电影网址| 成年18网站免费视频网站| 亚洲一区二区三区日本久久九| 67194熟妇在线永久免费观看| 视频一区在线免费观看| 亚洲AV无码乱码在线观看裸奔| 日韩亚洲国产高清免费视频| 无人视频在线观看免费播放影院|