LoginSignup
7
10

More than 5 years have passed since last update.

Javaでメール送信したい。

Posted at

どうやったらいいんだろう...と探していたところ、
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 素晴らしい。

7
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10