メールヘッダを使ってメールのスレッド表示を実現する
最終更新日: 2020年3月14日
R8 | R9
このページを読む前に、「メール送信(メールテンプレートを固定する)」に目を通しておいてください。
ここではメッセージIDを「<JasmineSoft主キー番号.送信回数@jasminesoft.co.jp>」とし、返信先として最初のメッセージID(が示すメールアドレス)とする例を紹介します。
図1は、新規登録直後に最初のメールが自動送信された画面です。「メッセージID」「返信先」はそれぞれメールヘッダのMessage-IDとIn-Reply-Toに用いられます。
続いて一回目の更新を行った直後の自動メール送信を図2に示します。メール送信回数が"2"となり、メッセージIDも".2"となっています。返信先は変わりません。
さらに二回目の更新を行った直後の自動メール送信を図3に示します。メール送信回数が"3"となり、メッセージIDも".3"となっています。返信先は変わりません。
図1から図3で自動送信されたメールです。メールのスレッド表示に対応していることがわかります。
メール送信機能を設定した顧客モデルの定義を図5に示します。「メール送信回数」「メッセージID」「返信先」という3つの項目がポイントです。
今回はデータの登録時と更新時に自動メール送信を行うようにしています。
メールテンプレートは登録用と更新用に分けて用意するとします。
送信成功時に「メール送信回数」項目をインクリメント(1つ増加)するため、次の式を設定しています。
データの登録時と更新時の自動メール送信にあわせて、次の式を設定します。
CONCATENATE関数は、引数の文字列を結合します。
この項目は入力できないよう、読み込み専用とします。
登録時は空とします。更新の都度、最初のメッセージID (送信回数が 1 の状態)を格納するようにします。
この項目も入力できないよう、読み込み専用とします。
メールテンプレートでは、図11のようにメールヘッダを指定します。
Message-ID, In-Reply-To の形式は RFC で定められており、不正な形式でメールを送信した場合、メールサーバーやメールクライアントで問題が発生する可能性があります。詳細は下記URLをご参照ください。
RFC 2822 "Internet Message Format"
例
重要
定義方法
モデルの定義
メール送信の設定
${mailsend_cnt}=${mailsend_cnt}+1
メッセージID項目
CONCATENATE("<JasmineSoft", TOSTR(${customerid}), ".", TOSTR(${mailsend_cnt}), "@jasminesoft.co.jp>")
TOSTR関数は、引数の数値を文字列に変換します。例ではcustomerid項目が数値型のため、TOSTR関数を適用しています。
"JasmineSoft" や "@jasminesoft.co.jp" の文字列は適切に置換してお使いください。
返信先項目
CONCATENATE("<JasmineSoft", TOSTR(${customerid}), ".1@jasminesoft.co.jp>")
メールテンプレート
注意点
ワンポイント
http://www.ietf.org/rfc/rfc2822.txt