2004-11-15
■ [DI][S2]ozacc-mail libraryをS2で使うときの設定
サンプルではSpringで使うときの設定しかなかったので、ここに載せておきます。
本家のページに転載してもらえればうれしいです。>ozaccの方
diconの設定はこちら。
allsupport.dicon <components namespace="support" > <component class="com.ozacc.mail.impl.XMLVelocityMailBuilderImpl"> <description>メール生成クラス</description> </component> <component class="com.ozacc.mail.impl.SendMailImpl"> <description>メール送信クラス</description> <property name="host">"smtpサーバのホスト名"</property> </component> </components> 業務.dicon <components> <include path="alldao.dicon"/> <include path="allsupport.dicon"/> <component class="xxx.yyy.zzz.SendMailLogicImpl"> <property name="templatePath">"/templates/mail-template.xml"</property> </component> </components>
メール送信のメール送信ロジッククラスとインターフェイスはこちら。
/** * メール送信ロジックインターフェイス。 */ public interface SendMailLogic{ void sendMessage(MailFormDto dto); }
/** * メール送信ロジック。 */ public class SendMailLogicImpl implements SendMailLogic{ //-------------------------------------------------------------[Fields] /** ログ */ private Log log = LogFactory.getLog(getClass()); //---------------------------------------------------[DI Setter Method] /** メール作成クラス[auto injection] */ private VelocityMailBuilder velocityMailBuilder; public void setVelocityMailBuilder(VelocityMailBuilder velocityMailBuilder) { this.velocityMailBuilder = velocityMailBuilder; } /** メール送信クラス[auto injection] */ private SendMail sendMail; public void setSendMail(SendMail sendMail) { this.sendMail = sendMail; } /** メールテンプレートのパス[manual ingection] */ private String templatePath; public void setTemplatePath(String templatePath) { this.templatePath = templatePath; } //---------------------------------------------------[Implments Method] /** * メールフォームからの内容を送信します。 * メールテンプレートを使ってメール送信します。 * @param dto メールフォームの入力内容 **/ public void sendMessage(MailFormDto dto) { // VelocityContext作成 VelocityContext context = new VelocityContext(); context.put("mailForm", dto); // メール作成・送信 Mail mail = velocityMailBuilder.buildMail(templatePath, context); sendMail.send(mail); } }
<mail>
<from email="${malForm.mail}" name="${mailForm.name}" />
<recipients>
<to email="送信先アドレスを指定"/>
</recipients>
<replyTo email="${mailForm.mail}" />
<subject><![CDATA[
メールフォームを受け付けました。
></subject>
<body><![CDATA[
名前 : ${mailForm.name}
住所 : ${mailForm.address}
></body>
</mail>
メールテンプレートのtoとかReplay-toにも値のバインドができちゃうのが
便利でした。
[コメントを書く]
# ozacc 『承知しました。』
# agt 『ありがとうございます。すごい使いやすいライブラリで助かっています。』