メールマガジンを配信する(メンバープラグイン)
ここでは、SDKからメールマガジンを配信する方法について解説します。
メールマガジンオブジェクトECHO.Members.MailmagObject
MailmagObjectは、メールマガジンを配信・操作するためのオブジェクトです。
オブジェクトを生成する
新しいメールマガジンをオブジェクトとして生成するには、コンストラクタの第一引数にメンバーインスタンスのIDを指定します。
var mailmag = new ECHO.Members.MailmagObject("メンバーインスタンスID");
既存メールマガジンをオブジェクトとして生成するには、コンストラクタの第二引数にメールマガジンIDを指定します。
var mailmag = new ECHO.Members.MailmagObject("メンバーインスタンスID", "メールマガジンID");
オブジェクトフィールド
メールマガジンオブジェクトは、以下のフィールドを持ちます。
フィールド名 | 型 | 説明 | 可変 |
---|---|---|---|
refid | String | メールマガジンID | × |
title | String | メールマガジンタイトル(件名) | ◯ |
text | String | メールマガジン本文 | ◯ |
distributed | Date | 配信予約日時 | ◯ |
target | Object | 配信ターゲット(ターゲットの指定には、ターゲット指定アクセサをご利用ください) | ◯ |
to_field | String | 配信先メールアドレス(メンバーコンテンツフィールドID) | ◯ |
from_email | String | 配信元メールアドレス | ◯ |
text_type | String | 本文の形式
|
◯ |
status | Number | 配信ステータス
|
◯ |
フィールドからデータを取得する
フィールドからデータを取得する場合は、getメソッドを使用します。
var title = mailmag.get("title");
フィールドにデータをセットする
オブジェクトのフィールドにデータをセットするには、putメソッドを使用します。
mailmag.put("title", "test mailmag");
mailmag.put("text", "mailmag text");
配信ターゲットを指定する(ターゲット指定アクセサ)
メールマガジンの配信先(ターゲット)を指定するには、以下のターゲット指定アクセサを使用します。
// 配信ターゲットをリセット
mailmag.resetTarget();
// 全てのメンバーを配信ターゲットに指定
mailmag.targetAllMembers();
// ルートグループを配信ターゲットに指定(グループに所属する全てのメンバーが配信対象になります)
mailmag.targetRootGroup();
// 特定のメンバーを配信ターゲットに追加
var member = new ECHO.Members.MemberObject(mailmag.instanceId, "メンバーID"); // ターゲットに追加するメンバーオブジェクトを生成
mailmag.targetSpecificMember(member);
// 特定のグループを配信ターゲットに追加
var group = new ECHO.Members.GroupObject(mailmag.instanceId, "グループID"); // ターゲットに追加するグループオブジェクトを生成
mailmag.targetSpecificGroup(group);
メールマガジンを配信/下書き保存する
メールマガジンを配信または下書き保存するには、pushメソッドを使用します。
var mailmag = new ECHO.Members.MailmagObject("メンバーインスタンスID");
mailmag.put("title", "test mailmag"); // メールマガジンタイトル(件名)をセット
mailmag.put("text", "mailmag text"); // メールマガジン本文をセット
....
// メールマガジンをプッシュ
var promise = mailmag.push();
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Error: " + error);
});
メールマガジンを取得する
リモートサーバー上に存在するメールマガジンを取得するには、fetchメソッドを使用します。
var mailmag = new ECHO.Members.MailmagObject("メンバーインスタンスID", "メールマガジンID");
// メールマガジンを取得
var promise = mailmag.fetch();
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Error: " + error);
});
メールマガジンを削除する
リモートサーバー上に存在するメールマガジンを削除するには、deleteメソッドを使用します。
var mailmag = new ECHO.Members.MailmagObject("メンバーインスタンスID", "メールマガジンID");
// メールマガジンを削除var promise = mailmag.delete();
// コールバックを定義
promise.then(function(success) { // 成功時
console.log("Complete: " + success);
}, function(error) { // 失敗時
console.log("Error: " + error);
});
現在のACLを取得する
オブジェクトに現在設定されているACLを取得するには、getACLメソッドを使用します。
var current_acl = mailmag.getACL();
ACLを変更する
オブジェクトに新しいACLを設定するには、setNewACLメソッドを使用します。
var new_acl = new ECHO.ACL(); // ACLオブジェクトを生成
new_acl.putEntryForAll(new ECHO.ACL.Entry(false, false, false, false)); // 例:非ログイン訪問者の操作権限を全て奪う
mailmag.setNewACL(new_acl); // 新しいACLをセット
mailmag.push(); // セットしたACLを反映させるには、最後に必ず保存を実行してください