package hayashi.yuu.tools;
import hayashi.yuu.tools.mail.SendMail;
import java.io.UnsupportedEncodingException;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
import javax.mail.MessagingException;
/**
* 標準のメール送信。
* ただし、メール送信指示を与えるだけで、メール送信タスクは別スレッドで動作する。
* @author hayashi
*
*/
public class SpeedMail extends SendMail implements Callable<Object>
{
@SuppressWarnings("unchecked")
public static void main(String[] args) {
FutureTask task;
SpeedMail mail;
try {
mail = new SpeedMail("sendmail.properties");
}
catch (Exception e1) {
e1.printStackTrace();
return;
}
try {
task = new FutureTask(mail);
}
catch (Exception fe) {
System.out.println(fe.toString());
return;
}
new Thread(task).start();
//----------------------------------------------------------------------
// 送信完了を待つ
// SpeedMailを利用するなら以下の処理は要らないはず
//----------------
try {
task.get();
}
catch (InterruptedException e) {
e.printStackTrace();
}
catch (ExecutionException e) {
e.printStackTrace();
}
}
public SpeedMail(String propFileName) throws Exception {
super(propFileName);
}
public Object call() throws MessagingException, UnsupportedEncodingException {
send();
return null;
}
}