package samples.mail;
import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Iterator;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jp.co.symmetric.durian.mail.MailMessage;
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;
/**
* 配信ボックスIDが0000の配信ボックスに
* タスク名:サンプル配信
* 配信日時:2006/09/01 16:00
* 宛先 :rcpt1@domain.example, rcpt2@domain.example
* 本文 :これはサンプル配信です。
* という配信タスクを作成し登録するサンプルです
*/
public class SampleServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = getServletContext();
// 配信エンジンの取得
DeliveryEngine deliveryEngine = DeliveryEngine.getDeliveryEngine(context);
// 配信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;
}
}
/*
* 以降配信タスクの作成処理です
*/
// 送信日時の作成(必須)
Calendar sendCalendar = new GregorianCalendar(2006, Calendar.SEPTEMBER, 1, 16, 0, 0);
// 本文の作成(必須)
MailMessage body = new MailMessage();
body.setBodyText("これはサンプル配信です。");
// タスクの作成(必須)
DeliveryTask deliveryTask = deliveryBox.createDeliveryTask(sendCalendar.getTime(), body);
// タスクに名前を付ける(オプション)
deliveryTask.setName("サンプル配信");
// 宛先の追加(必須)
String[] sampleRecipients = {"rcpt1@domain.example", "rcpt2@domain.example"};
for (int i = 0; i < sampleRecipients.length; i++) {
// 1件の宛先作成
Recipient recipient = new Recipient(sampleRecipients[i]);
// タスクに宛先を追加
deliveryTask.addRecipients(recipient);
}
// 配信BOXにタスクの登録(必須)
deliveryBox.addDeliveryTask(deliveryTask);
}
}