どうやったらいいんだろう...と探していたところ、
Apache Commons Emailが良さそうだったので、これを使う事にした。
プロジェクトでApache Commons Langも使ってるし、
変なライブラリ入れるよりは、これの方が統一感あっていいかなと。
使い方①
サンプルコードがあるのであるので、とりあえずコピペ。
Email email = new SimpleEmail();
email.setHostName("smtp.googlemail.com");
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("username", "password"));
email.setSSLOnConnect(true);
email.setFrom("user@gmail.com");
email.setSubject("TestMail");
email.setMsg("This is a test mail ... :-)");
email.addTo("foo@bar.com");
email.send();
サンプルコードを見てると、googleのメールサーバを使って送信するようになってる。
なので、自分のGoogleの情報を使って、以下を修正する。
-
username
...........Googleにログインする時のユーザID -
password
...........Googleにログインする時のパスワード -
user@gmail.com
.....Googleのメールアドレス -
"foo@bar.com"
......送信先のメールアドレス(※他人のメールアドレス使っちゃダメだよ!!!)
そして実行。
これだけ!
シンプル!
素晴らしい!
Congratulations!
使い方②:添付ファイル付与
Email email = new SimpleEmail();
これだとファイルが添付できない。
ファイルを添付するには.....これもサンプルコードがある。
// Create the attachment
EmailAttachment attachment = new EmailAttachment();
attachment.setPath("mypictures/john.jpg");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Picture of John");
attachment.setName("John");
// Create the email message
MultiPartEmail email = new MultiPartEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("The picture");
email.setMsg("Here is the picture you wanted");
// add the attachment
email.attach(attachment);
// send the email
email.send();
ファイルが配置されているパスを指定してあげるだけという、非常にシンプルな構成。
素晴らしい。
けど、これだとファイルを一件しか添付できない。
複数ファイルを添付するにはどうしたら????????????
と思って調べてたらこんな記事があった。
http://d.hatena.ne.jp/hiro_nemu/20091109/1257760767
添付したいだけnewして、email.attach(attachment)
してあげればいいだけみたい。
素晴らしい。
結論
Apache Commons 素晴らしい。