メールマガジンを配信する(メンバープラグイン)

ここでは、SDKからメールマガジンを配信する方法について解説します。

メールマガジンオブジェクトcom.echopf.members.ECHOMailmagObject

ECHOMailmagObjectは、メールマガジンを配信・操作するためのオブジェクトです。

オブジェクトを生成する

新しいメールマガジンをオブジェクトとして生成するには、コンストラクタの第一引数にメンバーインスタンスのIDを指定します。

ECHOMailmagObject mailmag = new ECHOMailmagObject("メンバーインスタンスID");

既存メールマガジンをオブジェクトとして生成するには、コンストラクタの第二引数にメールマガジンIDを指定します。

ECHOMailmagObject mailmag = new ECHOMailmagObject("メンバーインスタンスID", "メールマガジンID");

オブジェクトフィールド

メールマガジンオブジェクトは、以下のフィールドを持ちます。

フィールド名説明可変
refid java.lang.String メールマガジンID ×
title java.lang.String メールマガジンタイトル(件名)
text java.lang.String メールマガジン本文
distributed com.echopf.ECHODate 配信予約日時
target org.json.JSONObject 配信ターゲット(配信先の指定には、ターゲット指定アクセサをご利用ください)
to_field java.lang.String 配信先メールアドレス(メンバーコンテンツフィールドID)
from_email java.lang.String 配信元メールアドレス
text_type java.lang.String 本文の形式
  • text: プレーンテキスト形式(デフォルト)
  • html: HTML形式
status java.lang.Integer 配信ステータス
  • 1: 配信予約(デフォルト)
  • -1: 下書き保存

フィールドからデータを取得する

文字列(String)型のフィールドからデータを取得する

文字列型のフィールドからデータを取得する場合は、getStringメソッドまたはoptStringメソッドを使用します。

String title = mailmag.getString("title");

整数値(int)型のフィールドからデータを取得する

整数値型のフィールドからデータを取得する場合は、getIntメソッドまたはoptIntメソッドを使用します。

オブジェクト(JSONObject)型のフィールドからデータを取得する

オブジェクト型のフィールドからデータを取得するには、getJSONObjectメソッドまたはoptJSONObjectメソッドを使用します。

JSONObject target = mailmag.getJSONObject("target");

フィールドにデータをセットする

オブジェクトのフィールドにデータをセットするには、putメソッドまたはputOptメソッドを使用します。

mailmag.put("title", "test mailmag");

mailmag.put("text", "mailmag text"); 

配信ターゲットを指定する(ターゲット指定アクセサ)

メールマガジンの配信先(ターゲット)を指定するには、以下のターゲット指定アクセサを使用します。

// 配信ターゲットをリセット
mailmag.resetTarget();

// 全てのメンバーを配信ターゲットに指定
mailmag.targetAllMembers();

// ルートグループを配信ターゲットに指定(グループに所属する全てのメンバーが配信対象になります)
mailmag.targetRootGroup();

// 特定のメンバーを配信ターゲットに追加
var member = new ECHOMemberObject("メンバーインスタンスID", "メンバーID"); // ターゲットに追加するメンバーオブジェクトを生成
mailmag.targetSpecificMember(member);

// 特定のグループを配信ターゲットに追加
var group = new ECHOMembersGroupObject("メンバーインスタンスID", "グループID"); // ターゲットに追加するグループオブジェクトを生成
mailmag.targetSpecificGroup(group);

メールマガジンを配信/下書き保存する

メールマガジンを配信するには、pushメソッド(同期通信による保存)もしくはpushInBackgroundメソッド(非同期通信による保存)を使用します。

ECHOMailmagObject mailmag = new ECHOMailmagObject("メンバーインスタンスID");

mailmag.put("title", "test mailmag"); // メールマガジンタイトル(件名)をセット
mailmag.put("text", "mailmag text"); // メールマガジン本文をセット
....


// 非同期でメールマガジンをプッシュ
mailmag.pushInBackground(new PushCallback<ECHOMailmagObject>() {

      @Override // 保存完了後に実行するコールバックメソッドを定義
      public void done(ECHOMailmagObject obj, ECHOException e) {
            if(e == null) { // 正常終了
                  Log.d("Complete", obj.toString());
            }else{ // 異常発生
                  Log.e("Error", e.toString());
            }
      }

});

メールマガジンを取得する

リモートサーバー上に存在するメールマガジンを取得するには、fetchメソッド(同期通信による取得)もしくはfetchInBackgroundメソッド(非同期通信による保存)を使用します。

ECHOMailmagObject mailmag = new ECHOMailmagObject("メンバーインスタンスID", "メールマガジンID");

// 非同期でメールマガジンを取得
mailmag.fetchInBackground(new FetchCallback<ECHOMailmagObject>() {

      @Override // 取得完了後に実行するコールバックメソッドを定義
      public void done(ECHOMailmagObject obj, ECHOException e) {
            if(e == null) { // 正常終了
                  Log.d("Complete", obj.toString());
            }else{ // 異常発生
                  Log.e("Error", e.toString());
            }
      }

});

メールマガジンを削除する

リモートサーバー上に存在するメールマガジンを削除するには、deleteメソッド(同期通信による削除)もしくはdeleteInBackgroundメソッド(非同期通信による削除)を使用します。

ECHOMailmagObject mailmag = new ECHOMailmagObject("メンバーインスタンスID", "メールマガジンID");

// 非同期でメールマガジンを削除

mailmag.deleteInBackground(new DeleteCallback<ECHOMailmagObject>() {

      @Override // 削除完了後に実行するコールバックメソッドを定義
      public void done(ECHOMailmagObject obj, ECHOException e) {
            if(e == null) { // 正常終了
                  Log.d("Complete", obj.toString());
            }else{ // 異常発生
                  Log.e("Error", e.toString());
            }
      }

});

現在のACLを取得する

オブジェクトに現在設定されているACLを取得するには、getACLメソッドを使用します。

ECHOACLObject current_acl = mailmag.getACL();

ACLを変更する

オブジェクトに新しいACLを設定するには、setNewACLメソッドを使用します。

ECHOACLObject new_acl = new ECHOACLObject(); // ACLオブジェクトを生成
new_acl.putEntryForAll(new ECHOACLEntry(false, false, false, false)); // 例:非ログイン訪問者の操作権限を全て奪う

mailmag.setNewACL(new_acl); // 新しいACLをセット

mailmag.push(); // セットしたACLを反映させるには、最後に必ず保存を実行してください