javamail 發送附件

/**         * 以HTML格式發送郵件         * @param mailInfo 待發送的郵件信息         */        public static boolean sendHtmlMail(MailSenderInfo mailInfo){          // 判斷是否須要身份認證          MyAuthenticator authenticator = null;         Properties pro = mailInfo.getProperties();         //若是須要身份認證,則建立一個密碼驗證器           if (mailInfo.isValidate()) {            authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());         }          // 根據郵件會話屬性和密碼驗證器構造一個發送郵件的session       Session sendMailSession ;       if(authenticator!=null){           sendMailSession  = Session.getDefaultInstance(pro,authenticator);        }else{           sendMailSession  = Session.getDefaultInstance(pro);       }              try {          // 根據session建立一個郵件消息          Message mailMessage = new MimeMessage(sendMailSession);          // 建立郵件發送者地址          Address from = new InternetAddress(mailInfo.getFromAddress());          // 設置郵件消息的發送者          mailMessage.setFrom(from);          // 建立郵件的接收者地址,並設置到郵件消息中          Address to = new InternetAddress(mailInfo.getToAddress());          // Message.RecipientType.TO屬性表示接收者的類型爲TO          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);              if(mailInfo.getAttachFileNames()!=null && mailInfo.getAttachFileNames().length>0){           BodyPart bpart = new MimeBodyPart();           String[] filenames = mailInfo.getAttachFileNames();           for(int i=0;i<filenames.length;i++){               String filename = filenames[i];               File file = new File(filename);               System.out.println(file.getName());               if(!file.exists()){                   System.err.println("文件不存在!");                   throw new NullPointerException();               }               FileDataSource fds=new FileDataSource(filename); //獲得數據源                 bpart.setDataHandler(new DataHandler(fds));               bpart.setFileName(MimeUtility.encodeText(filename, "GBK",null));//解決亂碼               mainPart.addBodyPart(bpart);           }       }              // 將MiniMultipart對象設置爲郵件內容          mailMessage.setContent(mainPart);          // 發送郵件          Transport.send(mailMessage);          System.out.println("以HTML格式發送郵件完畢!");       return true;          } catch (MessagingException ex) {              ex.printStackTrace();          } catch (UnsupportedEncodingException e) {         // TODO Auto-generated catch block         e.printStackTrace();     }          return false;        } 
相關文章
相關標籤/搜索