求大神指导写一个定时自动发送foxmail邮件的小工程!数据库用oracle,用jdbc连接!需要实现的功能是:每周一、三早上8点半实时从数据库中查找一批数据将其生成一个excle文件并将此excle文件作为邮件的附件发送给指定的人!

解决方案 »

  1.   

    呵呵,定时任务和mail的使用,有现成的。
      

  2.   

     /**  
          * 以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;   
        }   你说的定时器去研究quartz这个吧。
      

  3.   

    java中Timer类 我要定时跑任务,如:每天的早上8:30  怎么设置?
      

  4.   

    你这里面的MailSenderInfo 是什么?需要导jar包?
      

  5.   

    quartz  定时发送邮件。网上搜搜哦 
      

  6.   

    代码还是就不给了
    spingmail+quartz+poi就可以实现,网上多例子,多研究研究,很快就能写出来
      

  7.   


    到我的博客里看看那个javamail的发送实例吧...然后再写个timer...启动后,定时执行这个send方法就可以了...
      

  8.   

    现在小弟碰到个小问题,请教大神帮帮忙解决下,java在导出生成excel表格文件时,怎么对某个单元格加入背景颜色的操作~