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にも値のバインドができちゃうのが
便利でした。