POJOのプロパティでGO
ToとかCcとか、動的にセットしたいですね。そう云う時はPOJOにそのものずばりの名前のプロパティを作ってあげます。先ほどのPOJOにプロパティを追加しましょう。
public class TestData{ private String name; private InternetAddress from; private List to; private MailAddress[] cc; private String[] bcc private String subject; (setter、getter省略) }
そうすると、ここで設定された値が、diconファイルの記述内容、Maiに書いたアノテーションのどれよりも優先されて反映されます。ただし、Subjectはテンプレートに書いたのが最優先です。
設定可能なプロパティは下記です。
プロパティ名 | メール設定 | 指定可能な型 |
---|---|---|
subject | 件名 | String |
from | From | String,InternetAddress,MailAddress |
to | To | String,InternetAddress,MailAddressおよびそれぞれの配列もしくはList |
cc | Cc | String,InternetAddress,MailAddressおよびそれぞれの配列もしくはList |
bcc | Bcc | String,InternetAddress,MailAddressおよびそれぞれの配列もしくはList |
replyTo | Reply-To | String,InternetAddress,MailAddress |
returnPath | Return-Path | String,InternetAddress,MailAddress |
指定可能な型以外の場合はエラーにはなりませんが、nullが設定されます。また、fromなどを配列もしくはListにした場合は、最後の要素が反映されます(たぶん)。
Listの場合、要素の型がString、InternetAddress、MailAddress混在でも大丈夫です。
他に添付ファイル用のプロパティもありますが、それは後述します。
また、サーバの設定をmailProperties.diconで設定しましたが、POJOからの設定も可能です。特定のメールのみホストを切り替えたい、などの要件がある場合にはこちらで。
プロパティ名 | サーバ設定 | 指定可能な型 |
---|---|---|
host | SMTPサーバ | String |
port | SMTPポート | String,Integer,int |
username | SMTPユーザー名 | String |
password | SMTPパスワード | String |
で、添付ファイルにも対応していますが、それはまた次回の講釈で(芥川隆之風)。