サンプル・メール自動登録
メール自動登録サンプル
データベースから取得したメールアドレスから作成した配信タスクを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); } }