james中的fetchmail如何配置才能正常工作?

    这段时间在玩james,由于自己E文水平不行,加上文档又少,遇到了不少问题。现在有一个问题搞了好多天都没搞定,现在把它发出来,请求大家帮忙!

 

    我现在配置的james服务器可以给126.com的服务器发邮件,也可以收取james的内部邮件。

 

   现在需要把james作为本地的邮件服务器,通过它来收取外部邮件服务器(如163.com)的邮件。但是不管我怎么配置都收不到外部的邮件。

 

   james版本是3.X的(就是现在还没有发布的版本,支持spring的),其中的fetchmail的配置文件james-fetchmail.xml如下:

 

 

    <fetchmail enabled="true">  
        <fetch name="163.com">
            <accounts>
                <account user="lude707" password="123456" recipient="postmaster@hileps.com" ignorercpt-header="false"/>
            </accounts>
            <host>pop.163.com</host>
            <interval>10000</interval>
            <javaMailProviderName>pop3</javaMailProviderName>
            <javaMailFolderName>INBOX</javaMailFolderName>
            <javaMailProperties>
                <property name="mail.pop3.connectiontimeout" value="80000"/>             
                <property name="mail.pop3.timeout" value="80000"/>               
            </javaMailProperties>           
            <fetchall>true</fetchall>
            <recursesubfolders>false</recursesubfolders>      
            <fetched leaveonserver="false" markseen="true"/>     
            <remotereceivedheader index="1" reject="true" leaveonserver="true" markseen="false"/>    
            <maxmessagesize limit="0" reject="false" leaveonserver="true" markseen="false"/>         
            <undeliverable leaveonserver="true" markseen="false"/>       
            <recipientnotfound defer="true" reject="true" leaveonserver="true" markseen="false"/>                                                               
            <blacklist reject="true" leaveonserver="true" markseen="false"> wibble@hileps.com, flobble@hileps.com </blacklist>                                        
            <userundefined reject="true" leaveonserver="true" markseen="false" />   
            <remoterecipient reject="true" leaveonserver="true" markseen="false" />
        </fetch>
    </fetchmail>  

 

 

 

大家帮我看一下,我的配置错在那里,谢谢!

(第一次问问题,不知道这么发有没有人看到)

 

 

 

 

 

 

晕,这么多天了才浏览了五次,也午大部分都是我看的。
这个问题我已经搞得差不多算是清楚了,主要是这个版本是测试版,有不少东西都还没有搞好,这个是系统没有对DefaultTimeScheduler类的实例调用start()方法,我现在对它做了点改进:
    private boolean isRunning = false;
   
    public void start()
        throws Exception
    {
     
     if(false == isRunning)
     {
            //this should suck threads from a named pool
      System.out.println("DefaultTimeScheduler is starting now!");
      getLogger().info("DefaultTimeScheduler is starting now!");
      
            getThreadManager().getDefaultThreadPool().execute( this ); 
            isRunning = true;
     }
     else
     {
      System.out.println("DefaultTimeScheduler has bean started now!");
      getLogger().info("DefaultTimeScheduler has bean started now!");
     }
     
     

    }


并且在addTrigger()方法里对start()进行调用,这样问题就暂时解决了。
不过这只是一时的解决办法,最终的解决办法还得等apache来做。
因为start()是Startable接口的方法,根据系统的定义,这个应该是DefaultTimeScheduler类实例化后就执行的,结果我对它进行测试是没有执行的。

但是看DefaultComponentFactory类的incarnation()方法的代码时,感觉它应该是执行了的。

            //incarnation()方法部分代码
            if( Startable.class.isAssignableFrom( clazz ) )
            {
                getLogger().debug( "applying startup" );
                if( m_secure )
                {
                    AccessController.doPrivileged(
                      new PrivilegedExceptionAction()
                      {
                          public Object run() throws Exception
                          {
                             ((Startable)instance).start();
                             return null;
                          }
                      },
                      m_model.getAccessControlContext() );
                }
                else
                {
                    ContainerUtil.start( instance );
                }
                getLogger().debug( "component startup completed" );
            }

 

 

 

 

很想验证一把,但最近太忙了,以后再搞吧。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值