25. メール送信

メール送信にはozacc-mail library(http://spring-ext.sourceforge.jp/oml/)を使います。
WebWork2とozacc-mail libraryは共にVelocityをテンプレートエンジンに使っているため非常に相性が良いです。
以下のように書けば、ozacc-mail libraryのXMLの中でも画面と同じ感覚でValueStackを使うことが出来ます。

VelocityMailBuilder builder = new XMLVelocityMailBuilderImpl();
VelocityContext velocityContext = new WebWorkVelocityContext(
	ActionContext.getContext().getValueStack());
Mail mail = builder.buildMail("/mail.xml", velocityContext);
SendMailImpl sendMail = new SendMailImpl();
sendMail.setHost("SMTPサーバ");
sendMail.send(mail);

拙作のS2XWorkを使えば、ValueStack経由でS2のコンポーネントにもアクセスできて、なお便利(宣伝)。