コード例 #1
0
  /** 取得成績未上傳老師名單並寄發e-mail, cc給學務單位 */
  @SuppressWarnings("unchecked")
  @Override
  public void run() {

    StudAffairManager sm =
        (StudAffairManager) Global.context.getBean(IConstants.STUD_AFFAIR_MANAGER_BEAN_NAME);
    StudAffairDAO dao = (StudAffairDAO) Global.context.getBean("studAffairDAO");
    ScoreManager scm = (ScoreManager) Global.context.getBean(IConstants.SCORE_MANAGER_BEAN_NAME);
    MemberManager mm = (MemberManager) Global.context.getBean(IConstants.MEMBER_MANAGER_BEAN_NAME);

    String email = "";

    Calendar start = null;
    Calendar end = null;

    List<String> depts = sm.findCampusDepartment();
    String hql = "";
    String err = "";

    // Send email for Department that Teacher not upload score data which will expire
    start = Calendar.getInstance();
    start.add(Calendar.DATE, -8);

    List<Map> notUpload = new ArrayList<Map>();
    // Send email for Teacher not upload score data will expired
    try {
      notUpload = scm.findScoreNotUpload(depart, level, scope);
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    String teachedId = "";
    Empl empl = new Empl();
    DEmpl dempl = new DEmpl();
    int cnt = 0;
    for (Map notupMap : notUpload) {
      teachedId = notupMap.get("teacherID").toString();
      empl = mm.findEmplByIdno(teachedId);
      if (empl != null) {
        if (empl.getEmail() != null) {
          email = empl.getEmail();
        } else {
          email = "";
        }
      } else {
        dempl = mm.findDEmplByIdno(teachedId);
        if (dempl.getEmail() != null) {
          email = dempl.getEmail();
        } else {
          email = "";
        }
      }
      if (!email.equals("")) {
        // if(notupMap.get("teacherId").toString().equalsIgnoreCase("D120148934")||
        // notupMap.get("teacherId").toString().equalsIgnoreCase("F120603503")){
        // log.debug("email:" + email + ",is valid: " +
        // Toolket.isValidEmail(email));
        if (Toolket.isValidEmail(email)) {
          // TODO:test only

          if (cnt == 0) {
            err = this.sendEmail(notupMap, "*****@*****.**");
            cnt++;
            // break;
          }

          err = this.sendEmail(notupMap, email);
          err += err;
        }
        // }
      }
    }
    if (!err.equals("")) {
      sendDeptEmail("SysAdmin", err);
    }
  }
コード例 #2
0
  private void sendDeptEmail(String dept, String msgs) {
    String to = "";

    // TODO: 各部制負責人 E-mail 信箱未設定
    if (dept.indexOf("11") >= 0) {
      to = "*****@*****.**";
    } else if (dept.indexOf("12") >= 0) {
      to = "*****@*****.**";
    } else if (dept.indexOf("13") >= 0) {
      to = "*****@*****.**";
    } else if (dept.indexOf("21") >= 0) {
      to = "*****@*****.**";
    } else if (dept.indexOf("22") >= 0) {
      to = "*****@*****.**";
    } else if (dept.indexOf("23") >= 0) {
      to = "*****@*****.**";
    } else {
      to = "*****@*****.**";
    }

    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, -8);
    InternetAddress[] address = null;
    boolean sessionDebug = false;
    String mailserver = IConstants.MAILSERVER_DOMAIN_NAME_WWW;
    String From = "*****@*****.**";
    String Subject = "中華科技大學教師逾期未點名列表! 日期:" + Toolket.FullDate2Str(cal.getTime());
    String type = "text/html";
    String sysAdmin = "*****@*****.**";
    try {
      // log.debug("send email from:" + From + "\n To:" + to + "\n: mesg:" + message);
      Properties props = System.getProperties();
      props.put("mail.smtp.host", mailserver);
      props.put("mail.debug", true);
      props.put("mail.transport.protocol", "smtp");
      props.put("mail.smtp.auth", "true");
      Authenticator auth = new SMTPAuthenticator();

      javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props, auth);
      mailSession.setDebug(sessionDebug);
      MimeMessage msg = new MimeMessage(mailSession);

      msg.setFrom(new InternetAddress(From));
      address = InternetAddress.parse(to, false);
      msg.setRecipients(Message.RecipientType.TO, address);
      msg.setSubject(Subject);
      msg.setSentDate(new Date());

      if (dept.equalsIgnoreCase("SysAdmin")) {
        Subject =
            "教師將逾期未上傳點名單,E-mail傳送失敗訊息! 日期:"
                + Toolket.FullDate2Str(Calendar.getInstance().getTime());
        msg.setRecipients(Message.RecipientType.TO, address);
      } else {
        // msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(sysAdmin, false));
      }

      Multipart mp = new MimeMultipart();
      MimeBodyPart mbp = new MimeBodyPart();
      // mbp.setContent(msgs, type+";charset=MS950");
      mbp.setContent(msgs, type + ";charset=UTF-8");
      mp.addBodyPart(mbp);
      // msg.setContent(mp, type+";charset=MS950");
      msg.setContent(mp, type + ";charset=UTF-8");
      // Store store = mailSession.getStore("pop3");
      // store.connect("seastar.com.tw", "mailer", "emai168mvc");
      Transport transport = mailSession.getTransport();
      transport.connect();
      Transport.send(msg);
      transport.close();
      // store.close();

    } catch (MessagingException mex) {
      mex.printStackTrace();
    }
  }