<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    李李的技術博客

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      13 隨筆 :: 0 文章 :: 61 評論 :: 0 Trackbacks

    看看下面的應用例子,程序執行三秒后會在后臺開始發Email,只有幾行程序,很簡單吧。
    本來就應該這么簡單,還能再省么,呵呵,謝謝開源的力量……

        SimpleEmail email = new SimpleEmail();
        email.addTo(
    "receiver@somemail.com""Receier's Name");
        email.setSubject(
    "Email from www.bba96.com");
        email.setMsg(
    "Hello, guy!");
        EmailScheduler emailScheduler 
    = new EmailScheduler();
        emailScheduler.process(email);

    這里用到了jakarta common email中的SimpleEmail
    EmailScheduler是一個利用Opensymphony Quartz做簡單的調度,其中EmailJob實現了Quartz的Job接口
    以下是EmailScheduler以及EmailJob源代碼。

    package com.bba96.scheduler;

    import java.util.Date;

    import javax.mail.Authenticator;

    import org.apache.commons.mail.Email;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.quartz.SchedulerFactory;
    import org.quartz.SimpleTrigger;

    public class EmailScheduler {

        
    public void process(Email email, Authenticator authenticator)
                
    throws SchedulerException {
            
    // TODO if can be optimized with static instance.
            SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
            Scheduler sched 
    = schedFact.getScheduler();
            sched.start();

            JobDetail jobDetail 
    = new JobDetail("EmailJob"null, EmailJob.class);
            jobDetail.getJobDataMap().put(EmailJob.EMAIL, email);
            jobDetail.getJobDataMap().put(EmailJob.AUTHENTICATIOR, authenticator);
            
    //Create a trigger that fires exactly once, three seconds from now
            long startTime = System.currentTimeMillis() + 3000L;
            SimpleTrigger trigger 
    = new SimpleTrigger("emailTrigger"null,
                    
    new Date(startTime), null00L);
            sched.scheduleJob(jobDetail, trigger);
        }

        
    public void process(Email email) throws SchedulerException {
            process(email, 
    null);
        }

    }

     

    package com.bba96.scheduler;

    import javax.mail.Authenticator;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.commons.mail.DefaultAuthenticator;
    import org.apache.commons.mail.Email;
    import org.apache.commons.mail.EmailException;
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;

    public class EmailJob implements Job {

        
    protected final Log logger = LogFactory.getLog(EmailJob.class);

        
    public static String EMAIL = "EMAIL";

        
    public static String AUTHENTICATIOR = "AUTHENTICATIOR";

        
    public static String DEFAULT_HOST = "your smtp mail server";

        
    public static int DEFAULT_SMTP_PORT = 25;

        
    public static String DEFAULT_USER = "yourmail@yourserver.com";

        
    public static String DEFAULT_PASSWORD = "your password";

        
    public static String DEFAULT_FROM_ADDRESS = "yourmail@yourserver.com";

        
    public static String DEFAULT_FROM_NAME = "Your Name";

        
    public void execute(JobExecutionContext context)
                
    throws JobExecutionException {
            Email email 
    = (Email) context.getJobDetail().getJobDataMap().get(EMAIL);
            
    if (email != null) {
                Authenticator authenticator 
    = (Authenticator) context
                        .getJobDetail().getJobDataMap().get(AUTHENTICATIOR);
                
    if (email.getHostName() == null) {
                    email.setHostName(DEFAULT_HOST);
                }
                
    if (email.getSmtpPort() == null) {
                    email.setSmtpPort(DEFAULT_SMTP_PORT);
                }
                
    if (authenticator == null) {
                    authenticator 
    = new DefaultAuthenticator(DEFAULT_USER,
                            DEFAULT_PASSWORD);
                    email.setAuthenticator(authenticator);
                }
                
    if (email.getFromAddress() == null) {
                    
    try {
                        email.setFrom(DEFAULT_FROM_ADDRESS, DEFAULT_FROM_NAME);
                    } 
    catch (EmailException e) {
                        logger.error(
    "Email address invalid", e);
                        
    return;
                    }
                }
                
    try {
                    email.send();
                } 
    catch (EmailException e) {
                    logger.error(
    "Email send error", e);
                }
            }
        }

    }

    posted on 2005-10-15 22:01 李李 閱讀(2114) 評論(0)  編輯  收藏 所屬分類: 技術
    主站蜘蛛池模板: 免费在线精品视频| 日本久久久免费高清| 国产成人综合亚洲AV第一页| 噜噜综合亚洲AV中文无码| 影音先锋在线免费观看| 亚洲国产AV一区二区三区四区| 好吊妞788免费视频播放| 亚洲色欲啪啪久久WWW综合网| 成人免费视频网址| 精品免费国产一区二区三区| 一级毛片成人免费看免费不卡| 国产精品1024永久免费视频 | 成人免费视频88| 亚洲成a人片在线观看精品| 国产成人免费在线| jlzzjlzz亚洲jzjzjz| 国产成人精品免费午夜app| 亚洲欧洲日韩国产一区二区三区 | 国产午夜鲁丝片AV无码免费| 精品国产日韩亚洲一区91| 亚洲成a人在线看天堂无码| 中国内地毛片免费高清| 亚洲一区二区影院| 思思99re66在线精品免费观看| 99亚洲乱人伦aⅴ精品| 中文字幕久久亚洲一区| 无码av免费网站| 亚洲人成未满十八禁网站| 亚洲美女在线国产| 在线观看免费无码专区| 日本亚洲精品色婷婷在线影院| 妞干网在线免费视频| 国产免费久久精品丫丫| 亚洲经典在线中文字幕| 国产一级淫片免费播放电影| 爽爽爽爽爽爽爽成人免费观看| 亚洲激情黄色小说| 亚洲毛片网址在线观看中文字幕| 亚洲免费电影网站| 一级做a爱过程免费视| 亚洲国产精品成人精品小说|