Durian

サンプル・メール自動登録

メール自動登録サンプル

データベースから取得したメールアドレスから作成した配信タスクを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]); /* 実装は省略します */
			
			// それぞれの本文の&#36;{name}部分が、ここでセットした値に置き換わります
			params.put("name", name);
			
			// 変数付きの宛先作成
			Recipient recipient = new Recipient(sampleRecipients[i], params);
			
			// タスクに宛先を追加
			deliveryTask.addRecipients(recipient);
		}
		
		// 配信BOXにタスクの登録(必須)
		deliveryBox.addDeliveryTask(deliveryTask);
		
	}
}

Durian® is a registered trademark of Symmetric Co., Ltd.

© 2006- All Rights Reserved Symmetric Co., Ltd.