Groovyでmail送信
commonsのSimpleEmailを使う。
本文中の日本語が文字化けする。
→Doblog--ぐだぐだ-- に対応方法があった!
http://www.doblog.com/weblog/myblog/1571
SendMail.groovy
import org.apache.commons.mail.SimpleEmail import java.text.SimpleDateFormat // Date#privious はGroovyで追加されたソッド // SimpleDateFormatはJDKのクラス def sendEmail() { def email = new org.apache.commons.mail.SimpleEmail() def date = getPreviousDay_fmt2() def pc_count = getPcApplyCount() def mobile_count = getMobileApplyCount() email.setHostName("ybbsmtp.mail.yahoo.co.jp") email.setCharset("ISO-2022-JP") email.addTo("xxx1@xxx.ne.jp") email.addTo("xxx2@xxx.ne.jp") email.addTo("xxx3@xxx.ne.jp") email.setFrom("xxx@xxx.ne.jp") email.setSubject(date + " 端末種別別件数") // email.setMsg("こんにちわ") は文字化けする email.setContent(date + "端末種別件数\n\n" + "PC = " + pc_count + "\n" + "携帯 = " + mobile_count + "\n\n" + "--------------------------------------------------------------\n" + "あいうえお" ,"text/plain; charset=Shift_JIS"); email.send() } // DB検索用前日日付文字列作成 private String getPreviousDay_fmt1() { def dfm = new SimpleDateFormat("yyyyMMdd%"); return dfm.format(new Date().previous()) } // メール文用前日日付文字列作成 private String getPreviousDay_fmt2() { def dfm = new SimpleDateFormat("yyyy年MM月dd日"); return dfm.format(new Date().previous()) } private int getPcApplyCount() { return 1234 // To Do : DBを検索する } private int getMobileApplyCount() { return 567 // To Do : DBを検索する } println "start sendEmail" sendEmail() println "end sendEmail"