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

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

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

    李李的技術(shù)博客

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      13 隨筆 :: 0 文章 :: 61 評(píng)論 :: 0 Trackbacks

    看看下面的應(yīng)用例子,程序執(zhí)行三秒后會(huì)在后臺(tái)開始發(fā)Email,只有幾行程序,很簡單吧。
    本來就應(yīng)該這么簡單,還能再省么,呵呵,謝謝開源的力量……

        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是一個(gè)利用Opensymphony Quartz做簡單的調(diào)度,其中EmailJob實(shí)現(xiàn)了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 李李 閱讀(2108) 評(píng)論(0)  編輯  收藏 所屬分類: 技術(shù)
    主站蜘蛛池模板: 国产AV无码专区亚洲AV男同| 一本天堂ⅴ无码亚洲道久久| 在线看片无码永久免费视频| 亚洲av最新在线观看网址| 亚洲乱码中文字幕综合234| 91免费国产精品| 国产成人亚洲午夜电影| 亚洲av无码不卡| 日韩电影免费在线| 免费av一区二区三区| 亚洲国产欧美日韩精品一区二区三区 | 亚洲人成电影在线观看青青| 国产一级理论免费版| 精品一区二区三区免费毛片爱| 亚洲av色香蕉一区二区三区蜜桃| 亚洲av色影在线| 免费在线观看你懂的| 又粗又大又黑又长的免费视频 | 一二三四在线观看免费高清中文在线观看| 曰批全过程免费视频免费看 | 国产成人精品日本亚洲专一区| 亚洲熟伦熟女新五十路熟妇| 成人浮力影院免费看| 成在线人视频免费视频| 亚洲精品中文字幕| 久久综合亚洲色一区二区三区| 亚洲美女在线国产| 日韩伦理片电影在线免费观看| 午夜免费啪视频在线观看| 曰批全过程免费视频免费看| 久久精品国产亚洲AV蜜臀色欲| 国产V亚洲V天堂A无码| 亚洲成A人片77777国产| 久久久久久国产精品免费免费| 日韩精品免费视频| 国产精品永久免费视频| 亚洲欧美在线x视频| 亚洲一本一道一区二区三区| 亚洲成人网在线播放| 亚洲综合精品香蕉久久网97| 亚洲色精品aⅴ一区区三区|