clojureでgmailを使ってメールを送信してみる
Clojureでgmailを使ってメール送信するコードを書いてみた。サンプルなのであくまで単純に。
leiningenを使っているので、project.cljも一緒に乗せておく。
commons-emailを使っているので、dependenciesに記述しています。
(defproject send-gmail "1.0.0-SNAPSHOT" :description "FIXME: write" :dependencies [[org.clojure/clojure "1.1.0"] [org.clojure/clojure-contrib "1.1.0"] [org.apache.commons/commons-email "1.2"]] :dev-dependencies [[swank-clojure "1.2.0-SNAPSHOT"]])
core.cljは以下のような感じになる。
日本語が文字化けしないcharsetを指定している。
(import '(org.apache.commons.mail SimpleEmail)) (import '(org.apache.commons.mail DefaultAuthenticator)) (def email (SimpleEmail.)) (doto email (.setSmtpPort 587) (.setAuthenticator (DefaultAuthenticator. "gmailアカウント" "gmailパスワード")) (.setHostName "smtp.gmail.com") (.setFrom "送信元アドレス") (.setCharset "iso-2022-jp") (.setContent "テスト" "text/plain; charset=iso-2022-jp") (.setSubject "テスト") (.addTo "送信先アドレス") (.setTLS true)) (.send email)
実行方法は以下のような感じになる。
leinにreplとclojureのソースを引数として渡すと、実行できる。
lein repl src/send_gmail/core.clj