読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

javaMailでメール送信

javamailを使ってscalagmailから適当に送信してみた。
scalaを使ったけどぶっちゃけベタ書きなのでscalaを使うことに全く意味が無いんだけど...

build.sbtに依存関係を追加

libraryDependencies ++= Seq(
    "javax.mail" % "javax.mail-api" % "1.5.1",
    "javax.mail" % "mail" % "1.5.0-b01"
    )

これmail-apiだけだったらMaillogerがないって怒られたのでもう一つ追加。mail.jarを入れると改善されると書いてたので...

http://www.mkyong.com/java/java-lang-classnotfoundexception-com-sun-mail-util-messageremovedioexception/

以下のページを参考にソースを書いてみた

http://www58.atwiki.jp/chapati4it/m/pages/124.html

http://www.atmarkit.co.jp/fjava/javatips/123java022.html

ソースはこんな感じ

import java.io.UnsupportedEncodingException
import java.util.Properties
import javax.mail._
import javax.mail.internet._

object Main {
  def main(args: Array[String]){
    val properties = new Properties
    properties.put("mail.smtp.host","smtp.gmail.com")
    properties.setProperty("mail.smtp.port", "587")
    properties.setProperty("mail.smtp.auth", "true")
    properties.setProperty("mail.smtp.connectiontimeout", "5000")
    properties.setProperty("mail.smtp.timeout", "5000")
    properties.setProperty("mail.smtp.starttls.enable", "true")

    //poperties.setProperty("mail.debug", "true")

    class Auth(username:String,password:String) extends Authenticator {
      override def getPasswordAuthentication():PasswordAuthentication = {
        new PasswordAuthentication(username, password);
      }
    }

    val session = Session.getDefaultInstance(properties,
      new Auth("your_username","your_password")
    )

    val msg = new MimeMessage(session)

    try {
      msg.setRecipients(Message.RecipientType.TO,"example@mail.com") //宛先
      msg.setFrom(new InternetAddress("your_username@gmail.com","Mr.test")) //宛先と差出人的な
      msg.setSubject("test mail","ISO-2022-JP") //タイトル
      msg.setText("hello","ISO-2022-JP") //本文
      Transport.send(msg) //送信
    } catch {
      case e:UnsupportedEncodingException => e.printStackTrace
      case e:MessagingException => e.printStackTrace
    }
  }
}

ほとんどjavaのコードそのまま写しただけなので別にjavaで書いてもいいんじゃねってなるけどこんな感じ。

Firefox ブラウザ無料ダウンロード