Gradle でメールを送ってみる
Gradle でメールを送ろうとしたら クラスパス関係ではまってしまったのでメモしておこう。
どうやら、ant.mail を使うためには EmailTask (Ant のライブラリ) を読み込んだクラスローダに直接 JavaMail 関係のライブラリを追加するしかないっぽい。
クラスローダに直接 JAR ファイルを追加できるのも Gradle(Groovy) の良いところでもあるのだが、メールでちょっと通知するだけなのに こんなに書かないといけなのも なんだかなぁ...
早く標準でサポートしてほしいなぁ...
import org.apache.tools.ant.taskdefs.email.EmailTask configurations { sendmail } repositories { mavenCentral() } dependencies { sendmail 'javax.mail:mail:1.4.4' sendmail 'org.apache.ant:ant-javamail:1.8.2' } task mail << { configurations.sendmail.each { f -> EmailTask.class.classLoader.addURL(f.toURI().toURL()) } ant { mail(mailhost: "smtp.server.name", mailport: 25, subject: "テスト", message: "こんにちは、Gradle!!", charset: "ISO-2022-JP") { from(address: "bluepapa32@gmail.com") to(address: "somebody@gmail.com") } } }