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;        } 
相关文章
相关标签/搜索