com.ozacc.mail.spring.MailetRunnerJob Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ozacc-mail Show documentation
Show all versions of ozacc-mail Show documentation
Library to send and receive emails.
The newest version!
package com.ozacc.mail.spring;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import com.ozacc.mail.fetch.FetchMailPro;
import com.ozacc.mail.fetch.ReceivedMail;
import com.ozacc.mail.mailet.MailetWrapper;
/**
* Spring FrameworkのQuartz実行用MailetRunner。
*
* @since 1.2
* @author Tomohiro Otsuka
* @version $Id: MailetRunnerJob.java,v 1.1.2.3 2005/01/23 06:47:16 otsuka Exp $
*/
public class MailetRunnerJob extends QuartzJobBean {
private List mailetWrapperList;
private FetchMailPro fetchMailPro;
/**
* コンストラクタ。
*/
public MailetRunnerJob() {
mailetWrapperList = new ArrayList<>();
}
/**
* メール受信とMailetの起動を行います。
*
* @see org.springframework.scheduling.quartz.QuartzJobBean#executeInternal(org.quartz.JobExecutionContext)
*/
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
fetchMailPro.connect();
try {
int count = fetchMailPro.getMailCount();
for (int i = 1; i <= count; i++) {
ReceivedMail mail = fetchMailPro.getMail(i);
processMail(mail);
}
} finally {
if (fetchMailPro.isConnected()) {
fetchMailPro.disconnect();
}
}
}
/**
* 指定された受信メールに対してMailetを適用します。
*
* @param mail MailetUnitに渡す受信メール
*/
private void processMail(ReceivedMail mail) {
for (Iterator itr = mailetWrapperList.iterator(); itr.hasNext();) {
MailetWrapper mailetWrapper = itr.next();
mailetWrapper.execute(mail);
}
}
/**
* メールの受信に使用するFetchMailProインターフェースの実装インスタンスをセットします。
*
* @param fetchMailPro FetchMailProインターフェースの実装インスタンス
*/
public void setFetchMailPro(FetchMailPro fetchMailPro) {
this.fetchMailPro = fetchMailPro;
}
/**
* 実行するMailetのMailetWrapperリストをセットします。
*
* @param mailetWrapperList 実行するMailetのMailetWrapperリスト
*/
public void setMailetWrapperList(List mailetWrapperList) {
this.mailetWrapperList = mailetWrapperList;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy