メールを送信する
最終更新日: 2024年6月3日
R8 | R9
MailMessageManager とは、メール送信を行うユーティリティクラスです。これをスクリプトから使うことができます。
メール送信が成功した場合は
contact モデルにファイル型項目 attachment が用意されていたとき、マップに次のように二つの値を格納します。前者はファイル名で、後者が実際のファイル(のパス)に相当します。
メールテンプレート(上の例では "contactpattern1")で、「添付ファイル」欄に
上の例では replaceMap に直接、値をセットしていました。Wagbyが標準で用意する ReplaceMapHelper を使うことで、対象モデルのすべての項目を自動的にセットすることができます。これを使うと Designer によるメール送信設定と同等のことをスクリプトで記述できます。
コントローラのスクリプト「登録 > 登録の実行」タイミングで、CUSTOMER モデルのメール送信を行なう例を示します。(事前のメールテンプレート "orderCUSTOMER" を準備済み、とします。)
MailMessageマネージャを利用する
var replaceMap = new java.util.HashMap();
replaceMap.put("${message}", "Hello Wagby");
var mailman = p.appctx.getBean("MailMessageManager");
mailman.send("model1_update", replaceMap, errorManager, "Execute Script ", p);
true
を返します。失敗した場合はfales
を返します。MailMessageManager の send メソッドの引数
引数
説明
1
メールテンプレート識別子を指定します。
2
スクリプト中に用意したプレースホルダの置換マップを指定します。
3
エラーメッセージを扱うオブジェクトです。スクリプト中で暗黙に利用できます。このとおりに指定してください。
4
エラー発生時にログファイルに情報が出力されますが、そのときのログファイルのメッセージの先頭に埋め込まれる文字列(ログヘッダ)です。ログファイルを検索するときに用いることができます。任意の文字列を指定してください。ログファイルを見やすくするため、末尾に空白を一つ加えるとよいです。
5
pはスクリプト中で暗黙に利用できる特別なオブジェクトです。このとおりに指定してください。
MailMessageManager の戻り値
true
が返ります。失敗した場合はfalse
が返ります。
ファイルを添付する
var replaceMap = new java.util.HashMap();
replaceMap.put("${contact_p.attachment}", contact.attachment);
replaceMap.put("${contact_p.attachment_jshfilename}", contact.attachmentJshfilename);
var mailman = p.appctx.getBean("MailMessageManager");
mailman.send("contactpattern1", replaceMap, errorManager, "Execute Script ", p);
${contact_p.attachment}
を設定します。
ReplaceMapHelperクラスを利用する
var PHelper = p.appctx.getBean("CUSTOMERPHelper");
var replaceMapHelper = p.appctx.getBean("CUSTOMERReplaceMapHelper");
var mailman = p.appctx.getBean("MailMessageManager");
var CUSTOMER = p.request.getAttribute("CUSTOMER");
var CUSTOMER_p = PHelper.s2p(CUSTOMER,
p,
Packages.jp.jasminesoft.wagby.app.CUSTOMER.CUSTOMERPHelper.SHOW);
var replaceMap = replaceMapHelper.get(CUSTOMER_p, p)
mailman.send("orderCUSTOMER", replaceMap, errorManager, "Execute Script ", p);