EmailMagazineプラグインは、メルマガ購読者・メンバーなどを対象にメールマガジンを作成・配信する機能を提供します(オプションの別売りのプラグインです)。
ステータスが「配信予約」の時、配信日時を過ぎて定期実行タスク(tools/worker.php)が実行されたタイミングで配信されます。
ステータスが「配信」の時、配信対象のメールアドレス数が環境変数「emailmagazine_realtime(初期値は30)」以内の場合はオブジェクトの保存時に、それ以上の時は一度「ジョブ」「キュー」に保存され、次に定期実行タスク(tools/worker.php)が実行されたタイミングで配信されます。
変数名 | 説明 | 初期値 |
---|---|---|
emailmagazine_filter_opt_in | モデルにカラム「opt_in」が存在する時、メールマガジンの作成・編集画面のメールアドレスの選択ダイアログで値のあるメールアドレスのみをフィルタリング | true |
emailmagazine_filter_status | モデルにカラム「status」が存在する時、メールマガジンの作成・編集画面のメールアドレスの選択ダイアログでステータスが有効/公開状態のメールアドレスのみをフィルタリング | true |
emailmagazine_filter_delete_flag | モデルにカラム「delete_flag」が存在する時、メールマガジンの作成・編集画面のメールアドレスの選択ダイアログでフラグの付いていないメールアドレスのみをフィルタリング | true |
emailmagazine_filter_lock_out | モデルにカラム「lock_out」が存在する時、メールマガジンの作成・編集画面のメールアドレスの選択ダイアログでロックアウトされていないメールアドレスのみをフィルタリング | true |
emailmagazine_filter_reg_workspace_id | モデルにカラム「reg_workspace_id」が存在する時(memberモデルなど)、メールマガジンの作成・編集画面のメールアドレスの選択ダイアログで、スコープの一致するメールアドレスのみをフィルタリング | false |
emailmagazine_filter_workspace_ids | モデルにリレーション型のカラム「workspace_ids」が存在する時、メールマガジンの作成・編集画面のメールアドレスの選択ダイアログで、スコープの一致するメールアドレスのみをフィルタリング | true |
get_built_emailboilerplate | メールテンプレートをメールマガジンに適用する時、メールテンプレートに含まれている MTタグをビルドしてから適用 | false |
emailboilerplate_build_brace | 「get_built_emailboilerplate」が trueの時、で記述された MTタグをビルドするかどうかを指定 | false |
emailmagazine_realtime | ステータスが「配信」の時、配信対象のメールアドレス数がこの数値以内の場合はオブジェクトの保存時に、それ以上の時は一度「ジョブ」「キュー」に保存され、次に定期実行タスク(tools/worker.php)が実行されたタイミングで配信 | 30 |
emailmagazine_require_agreement | メールマガジンの購読申込画面で、「__agree」パラメタを必須にする | true |
※ リッチテキストエディタで MTタグを入力することはできません。リッチテキストエディタで MTタグを利用するには、「<」「>」の代わりに「{{」「}}」を使って下さい。
例 : <mt:date> は、 2024-10-29 12:36:01とすることができます。ファンクションタグの先頭と末尾の「$」は利用できません({{$mt:date$}}は処理されません)。
※ 選択されたメールアドレスに対応する配信対象のモデル(メールアドレス欄の下のドロップダウンメニューの選択されているモデル)のオブジェクトのコンテキストがセットされ、利用することができます。
例 : メンバーが選択されているとき、「<mt:membernickname>」はメンバーの表示名に置き換わります。
メールマガジンの本文部分、リッチテキストまたはテキストエリアのひな形を登録します。ひな形の適用はメールマガジンに対して1つのみ可能です。
部分的に適用したいひな形はプラグイン「TinyMCE」の「エディタひな形」を利用してください。
HTMLの <body></body> タグ及びその外側のHTMLソースを登録します。
デフォルトのHTMLテンプレートは以下の通りです(指定のない時はこのテンプレートが使われます)。
<html>
<head>
<title><mt:emailnewslettersubject _eval="1"></title>
</head>
<body>
<mt:emailnewsletterbody _eval="1">
</body>
</html>
※ 「_eval」モディファイアは「eval」モディファイアと異なり、形式の記述をサポートします。
メールマガジンのバックナンバーをウェブページとして公開する機能はありませんが、ビューを作成して、モデル「メールマガジン」に対応する URLマップを作成することで、他のモデルと同様にウェブサイト上にページを公開することができます。
ページが出力されるのはステータスが配信(配信済)のもののみが対象となります。メールマガジン毎にアーカイブを出力するかしないかを制御するには、真偽値型のカラムなどを追加するなどして、URLマップの分岐で、ページ出力されないメールマガジンのURLマップが空文字になるように設定して下さい。
http://example.com/powercmsx/plugins/EmailMagazine/app/pt-emailmagazine.php
必要に応じて別の場所に移動してください。
各リクエストには workspace_id(スコープ)を指定することができます。
購読申し込み画面を表示し、メルマガ購読申し込みを受け付けます。送信されたメールの一時URLをクリックすることで、登録が完了します。
購読解除画面を表示し、メルマガ購読購読解除を受け付けます。送信されたメールの一時URLをクリックすることで、購読解除が完了します。
対象のスコープに該当するベースネームと一致するビュー(クラスが「メールマガジン」指定のビュー)がある時、それが使われます。ない場合は、plugins/EmailMagazine/tmpl配下のテンプレートが利用されます。
対象のスコープに該当するベースネームと一致するビュー(クラスが「メール」指定のビュー)がある時、それが使われます。ない場合は、plugins/EmailMagazine/tmpl/email配下のテンプレートが利用されます。
送信済みのメールマガジン数をメールテンプレートごとにカウントします。
タグ属性「column」でカウント対象のカラム名(省略時「body_boilerplate_id」)、タグ属性「include_draft」指定で「配信」以外のステータスのものを含みます。