James的用户存储有File,,DB,,LDAP等方式存储..
File的方式我不清楚怎么去作..
但是如果你配置好了james的用户信息存储到数据库中.就很好解决了..
在apps\james\SAR-INF目录下会找到config.xml文件修改它第一步:
找到<users-store>这一项,此面默认的内容为:
<repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">
         <destination URL="file://var/users/"/>
</repository> 需要修改为:<repository name="LocalUsers" class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://maildb/users">
         <sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository> 第二步:
找到<data-sources>项,默认内容为空,把此项内容修改为:
<data-source name="maildb" class="org.apache.james.util.mordred.JdbcDataSource">
                           <driver>org.gjt.mm.mysql.Driver</driver>
                            <dburl>jdbc:mysql://127.0.0.1/mail</dburl>
                            <user>root</user>
                            <password></password>
                            <max>20</max>
</data-source>
用来配置存放数据库的配置信息..然后记得把JDBC的driver类放入james目录下的lib包中..
然后再启动James会自动生成一个user的表,,然后再怎么作..我也不用说了..
不过当你通过telnet添加新用户时,比如adduser zoey 123456,你可以查看数据库中的记录,一个字段是zoey,第二字段是密码,但密码并非123456,而一串“乱码”(zhwQUMTwdMqWfm/h0biB51Gf)??这是加密码后的密码内容,再看后面的字段是“SHA”,显然用的是SHA加密方式。
然后你可以直接调用James的带的SHA加密算法的类,在org.apache.james.userrepository包下