2008年5月18日日曜日

JavaMail(+Gmail)でメール送信

Javaプログラムからメール送信を行うためのライブラリJavaMailを使用する。
下記のライブラリファイルが必要になるので、ダウンロードしてプロジェクトに追加する。

JavaMail(mail.jar)
http://java.sun.com/products/javamail/downloads/index.html
JAF(activation.jar)
http://java.sun.com/javase/technologies/desktop/javabeans/jaf/downloads/index.html


実際のプログラムでは下記のように使用すれば良いらしい。
-----------------------------------------------------------------------------

/**
* SMTPメール送信
*
* @param serverUrl サーバーURL
* @param name メールアカウント名
* @param password メールパスワード
* @param smtpProps SMTPプロパティ
* @param toAddr 宛先アドレス
* @param fromAddr 送信元アドレス
* @param fromName 送信元表示名
* @param subject メールタイトル
* @param bodyText メール本文
* @throws Exception
*/
private void sendSmtpMail(
String serverUrl,
String name,
String password,
Properties smtpProps,
String toAddr,
String fromAddr,
String fromName,
String subject,
String bodyText )
throws Exception
{
// セッション
Session session = Session.getDefaultInstance(smtpProps, null);

// 送信メッセージ
MimeMessage mimeMsg = new MimeMessage(session);
mimeMsg.setRecipients(
Message.RecipientType.TO, toAddr);
mimeMsg.setFrom(
new InternetAddress(fromAddr, fromName));
mimeMsg.setSubject(subject, "ISO-2022-JP");
mimeMsg.setText(bodyText, "ISO-2022-JP");

// メール送信
Transport transport = null;
try
{
transport = session.getTransport("smtp");
transport.connect(serverUrl, name, password);
transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients());
}
catch(Exception e)
{
throw e;
}
finally
{
if(transport != null)
{
transport.close();
}
}
}

-----------------------------------------------------------------------------

上記メソッドの呼び出し方(Gmailの場合)
-----------------------------------------------------------------------------

String smtpServer = "smtp.gmail.com";
String gmailAddr = "????@gmail.com";
Properties props = new Properties();
props.put("mail.smtp.host", smtpServer);
props.put("mail.smtp.auth", "true" );
props.put("mail.smtp.port", "587");
props.put("mail.smtp.starttls.enable", "true");

sendSmtpMail(
smtpServer,
gmailAddr,
"パスワード",
props,
"宛先アドレス",
gmailAddr,
"送信者名",
"タイトル",
"コンニチハ" );

-----------------------------------------------------------------------------
Gmail設定仕様のためこのようなプロパティ設定が必要になる。

0 件のコメント: