ゆみる の そうび2
•
メール送信処理が必要なアプリケーション は多い• JavaMail
を直接ハンドリングするのはしんどい•
そこでozacc-mail library
– http://spring-ext.sourceforge.jp/oml/
– S2
との相性も良いCopyright © 2004-2009 The Seasar Foundation and the others. All rights reserved. 34
ゆみる の そうび2
Mail mail = new Mail();
mail.setFrom("[email protected]", "XXX
オンラインショップ");
mail.addTo("[email protected]", "
山田太郎さま");
mail.addBcc("[email protected]");
mail.setSubject("
山田太郎さま:ご注文の確認");
mail.setText("
山田太郎さま、商品を購入いただき¥n
ありがとうございました。");
//
メールの送信sendMail.send(mail);
(
http://spring-ext.sourceforge.jp/oml/
のサンプルを改変)ゆみる の そうび2
•
件名や本文を動的に組み立てるのが 若干手間Copyright © 2004-2009 The Seasar Foundation and the others. All rights reserved. 36
ゆみる の そうび2
• mailsender
– Seasar
プロジェクトのCMS
サブプロジェクト(
sandbox
プロジェクト内)で開発されているメール送 信ライブラリ– ozacc-mail library
ベース–
現在のバージョンは0.0.2
ゆみる の そうび2
• mailsender
の特徴–
件名と本文をFreemarker
テンプレートから生成–
メール送信処理をインターセプタ方式で実現– Gmail
のメールサーバを使ったメール送信に対応Copyright © 2004-2009 The Seasar Foundation and the others. All rights reserved. 38
ゆみる の そうび2
•
インタフェースまたはabstract class
を作成•
メール送信メソッドの実装は不要•
アノテーションでテンプレートを指定– Subject
アノテーション…
件名のテンプレート– BodyTemplate
アノテーション…
本文のテンプレートパス• ShopMailsender
があるパッケージの「ShopMailsender.customer.ftl
」という 名前のリソース•
テンプレートに埋め込む値を引数(CustomerDto
)で指定•
件名、本文以外はpublic interface ShopMailsender {
@Subject("${name}
様:ご注文の確認")
@BodyTemplate("customer.ftl")
void sendToCustomer(Mail mail, CustomerDto dto);
}
ゆみる の そうび2
public class CustomerDto { private String name;
public String getName() { return name;
}
public void setName(String name) { this.name = name;
} }
${name}
さま、商品を購入いただき ありがとうございました。CustomerDto:
customer.ftl:
Copyright © 2004-2009 The Seasar Foundation and the others. All rights reserved. 40
ゆみる の そうび2
// DTO
の準備CustomerDto dto = new CustomerDto();
dto.setName("
山田太郎");
Mail mail = new Mail();
mail.setFrom("[email protected]", "XXX
オンラインショップ");
mail.addTo("[email protected]", dto.getName() + "
さま");
mail.addBcc("[email protected]");
//
メールの送信shopMailsender.sendToCustomer(mail, dto);
ゆみる の そうび2
•
プロジェクトへのメール送信機能の 追加方法1.mailsender
フラグメントをプロジェクトに追加2.
メールサーバの設定をmailsender+sendMail.dicon
に記述•
開発時用設定:src/main/resources-develop/
•
統合テスト用設定:src/main/webapp-it/WEB-INF/classes/
•
本番用設定:src/main/webapp-release/WEB-INF/classes/
3.mailsender
パッケージにMailsender
インタフェース を作成Copyright © 2004-2009 The Seasar Foundation and the others. All rights reserved. 42
ゆみる の そうび2
• Gmail
のメールサーバを使う場合の設定例<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<component name="sendMail"
class="org.seasar.cms.mailsender.impl.SendMailImpl">
<property name="charset">"ISO-2022-JP"</property>
<property name="host">"smtp.gmail.com"</property>
<property name="port">587</property>
<property name="protocol">"smtp"</property>
<property name="starttlsEnabled">true</property>
<property name="username">"
(ユーザ名)"</property>
<property name="password">"
(パスワード)"</property>
</component>
</components>
てき が あらわれた!
Copyright © 2004-2009 The Seasar Foundation and the others. All rights reserved. 44
おわりに
おわりに
• Ymir
アプリケーションへの機能追加の方法として、バッチプログラムの追加方法とメー ル送信機能の追加方法についてご紹介しました
•
これからも、実案件で使えるフレームワークを目 指して(歩みは遅いかもしれませんが)頑張って 行きたいと思っています•
皆さんもYmir
を使って「れべる255
ゆみる」を目 指してみませんか?
ドキュメント内
ゆみる は こうげきりょく が 2 あがった!
(ページ 32-46)