<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 李李 閱讀(2106) 評論(0)  編輯  收藏 所屬分類: 技術
    主站蜘蛛池模板: 青青青免费国产在线视频小草| 国产好大好硬好爽免费不卡| 波多野结衣免费在线观看| 久久亚洲精品成人| 黄页免费在线观看| 亚洲AV一宅男色影视| 久久精品国产免费一区| 久久精品国产亚洲Aⅴ香蕉 | 亚洲愉拍99热成人精品热久久| 成人精品综合免费视频| 亚洲日本一区二区一本一道| 三年片免费高清版| 亚洲欧洲日韩国产综合在线二区| 18禁无遮挡无码国产免费网站| 精品久久亚洲中文无码| 国产视频精品免费| 大妹子影视剧在线观看全集免费| 午夜影视日本亚洲欧洲精品一区| 嫖丰满老熟妇AAAA片免费看| 亚洲国产精品久久久久秋霞小| 亚洲av麻豆aⅴ无码电影| 人妻免费一区二区三区最新| 亚洲春色另类小说| 免费看美女被靠到爽的视频| 免费一区二区三区在线视频| 久久久亚洲精品视频| 99在线视频免费观看视频| 亚洲AV女人18毛片水真多| 亚洲精品无码专区久久久 | 亚洲福利一区二区三区| 男人天堂免费视频| 亚洲视频在线一区二区三区| 成人免费一级毛片在线播放视频| 九九精品国产亚洲AV日韩| 亚洲欧洲无码AV电影在线观看 | 日本亚洲视频在线| 免费精品国产自产拍在线观看图片 | 中文字幕亚洲综合久久综合| 又色又污又黄无遮挡的免费视| 国产免费A∨在线播放| 亚洲经典在线中文字幕|