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

メールマガジンオブジェクトECHOMailmagObject

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

オブジェクトを生成する

新しいメールマガジンとしてオブジェクトを初期化するには、初期化メソッドの第一引数にメンバーインスタンスのIDを指定します。

ECHOMailmagObject *mailmag = [[ECHOMailmagObject alloc] initWithInstanceId:@"メンバーインスタンスID"];

既存メールマガジンとしてオブジェクトを初期化するには、初期化メソッドの第二引数にメールマガジンIDを指定します。

ECHOMailmagObject *mailmag = [[ECHOMailmagObject alloc] initWithInstanceId:@"メンバーインスタンスID" refid:@"メールマガジンID"];

オブジェクトフィールド

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

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


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

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

id title = [mailmag objectForKey:@"title"];

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

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

[mailmag setObject:@"test mailmag" forKey:@"title"];

[mailmag setObject:@"mailmag text" forKey:@"text"]; 

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

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

// 配信ターゲットをリセット
[mailmag resetTarget];

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

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

// 特定のメンバーを配信ターゲットに追加
ECHOMemberObject member = [[ECHOMemberObject alloc] initWithInstanceId:mailmag.instanceId refid:@"メンバーID"]; // ターゲットに追加するメンバーオブジェクトを生成
[mailmag targetSpecificMember:member];

// 特定のグループを配信ターゲットに追加
ECHOMembersGroupObject group = [[ECHOMembersGroupObject alloc] initWithInstanceId:mailmag.instanceId refid:@"グループID"]; // ターゲットに追加するグループオブジェクトを生成
[mailmag targetSpecificGroup:group];

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

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

ECHOMailmagObject *mailmag = [[ECHOMailmagObject alloc] initWithInstanceId:@"メンバーインスタンスID"];
[mailmag setObject:@"test mailmag" forKey:@"title"]; // メールマガジンタイトル(件名)をセット
[mailmag setObject:@"mailmag text" forKey:@"text"]; // メールマガジン本文をセット
....

// 非同期でメールマガジンをプッシュ
[mailmag pushInBackgroundWithBlock:^(NSError *e) {
            if(e == null) { // 正常終了
                  NSLog(@"Complete: %@", mailmag);
            }else{ // 異常発生
                  NSLog(@"Error: %@", e);
            }
}];

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

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

ECHOMailmagObject *mailmag = [[ECHOMailmagObject alloc] initWithInstanceId:@"メンバーインスタンスID" refid:@"メールマガジンID"];

// 非同期でメールマガジンを取得
[mailmag fetchInBackgroundWithBlock:^(NSError *e) {
            if(e == null) { // 正常終了
                  NSLog(@"Complete: %@", mailmag);
            }else{ // 異常発生
                  NSLog(@"Error: %@", e);
            }
}];

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

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

ECHOMailmagObject *mailmag = [[ECHOMailmagObject alloc] initWithInstanceId:@"メンバーインスタンスID" refid:@"メールマガジンID"];


// 非同期でメールマガジンを削除
[mailmag deleteInBackgroundWithBlock:^(NSError *e) {
            if(e == null) { // 正常終了
                  NSLog(@"Complete");
            }else{ // 異常発生
                  NSLog(@"Error: %@", e);
            }
}];

現在のACLを取得する

オブジェクトに現在設定されているACLを取得するには、currentACLプロパティを使用します。

ECHOACLObject *current_acl = mailmag.currentACL;

ACLを変更する

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

ECHOACLObject *new_acl = [[ECHOACLObject alloc] init]; // ACLオブジェクトを生成
[new_acl putEntryForAll: [[ECHOACLEntry alloc] initWithGet:NO list:NO edit:NO delete:NO] ]; // 例:非ログイン訪問者の操作権限を全て奪う

[mailmag setNewACL:new_acl]; // 新しいACLをセット

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