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"