/** 取得成績未上傳老師名單並寄發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); } }
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(); } }