サンプル・メール自動登録
メール自動登録サンプル
データベースから取得したメールアドレスから作成した配信タスクを3時間後に送信する例
※本文に変数を使用し、動的に内容を変えています
※実際にメールアドレスを取得する部分や、名前を取得する部分は省略しています
package samples.mail;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import jp.co.symmetric.durian.mail.MailMessage;
import jp.co.symmetric.durian.mail.delivery.DeliveryTaskRegister;
import jp.co.symmetric.durian.mail.delivery.DeliveryBox;
import jp.co.symmetric.durian.mail.delivery.DeliveryEngine;
import jp.co.symmetric.durian.mail.delivery.DeliveryTask;
import jp.co.symmetric.durian.mail.delivery.Recipient;
public class SampleTaskRegister extends DeliveryTaskRegister {
public void process() throws Exception {
// 配信エンジンの取得
DeliveryEngine deliveryEngine = getDeliveryEngine();
// 配信BOXのリストを取得します
// この例は事前にDurian管理ツールでIDが0000の配信BOXを作成してあることが前提です
Iterator iterator = deliveryEngine.getDeliveryBoxes();
DeliveryBox deliveryBox = null;
while (iterator.hasNext()) {
DeliveryBox box = (DeliveryBox) iterator.next();
if (box.getId().equals("0000")) {
deliveryBox = box;
break;
}
}
/*
* 以降配信タスクの作成処理です
*/
// 送信日時の作成(必須)
// 現在時刻から3時間後に送信開始
Date sendDate = new Date(new Date().getTime() + (1000 * 60 * 60 * 3));
// 本文の作成(必須)
MailMessage body = new MailMessage();
body.setBodyText("${name} さんへのメールです。");
// タスクの作成(必須)
DeliveryTask deliveryTask = deliveryBox.createDeliveryTask(sendDate, body);
// タスクに名前を付ける(オプション)
deliveryTask.setName("サンプル配信");
// 宛先の追加(必須)
// 宛先をデータベースから動的に取得する
String[] sampleRecipients = getRecipientsFromDatabase();/* 実装は省略します */
for (int i = 0; i < sampleRecipients.length; i++) {
HashMap params = new HashMap();
// メールアドレスから名前情報を取得
String name = getNameFromDataBase(sampleRecipients[i]); /* 実装は省略します */
// それぞれの本文の${name}部分が、ここでセットした値に置き換わります
params.put("name", name);
// 変数付きの宛先作成
Recipient recipient = new Recipient(sampleRecipients[i], params);
// タスクに宛先を追加
deliveryTask.addRecipients(recipient);
}
// 配信BOXにタスクの登録(必須)
deliveryBox.addDeliveryTask(deliveryTask);
}
}

