• 検索結果がありません。

ゆみる の そうび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 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

)で指定

件名、本文以外は

Mail

オブジェクトで指定

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 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)

関連したドキュメント