apache james 邮件服务器

apache james邮件服务器的几个配置

1. james配置:
首先保证已经安装jdk并正确配置。
下载james,解压缩到磁盘。如D:\james-2.3.2。
双击或命令行下运行 james-2.3.2\bin\run.bat一次。运行后才出现 james-2.3.2\apps\james\SAR-INF目录。
james的运行分为两种方式:前台直接运行、作为后台服务运行;
1>前台直接运行:
在C:\James\james-2.1\bin下运行run.bat
这是会出现:Using PHOENIX_HOME: C:\James\james-2.1
Using PHOENIX_TMPDIR: C:\James\james-2.1\temp
Using JAVA_HOME: C:\j2sdk1.4.2Phoenix 4.0.1James 2.1
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service Disabled
Fetch POP Disabled这是就表示James邮件服务以开启,不过Window下不能关闭控制台窗口,否者邮件服务会停止。如要克服此缺点必须使James邮件服务作为作为后台服务运行。停止前台运行按Ctrl+C,会出现:
JVM exiting abnormally. Shutting down Phoenix.
终止批处理操作吗(Y/N)?
2>后台服务运行:
将C:\James\james-2.1\conf目录下的wrapper.conf拷贝到C:\James\james-2.1\bin即包含wrapper.exe的目录下,运行:
wrapper.exe -i C:\James\james-2.1\bin\wrapper.conf
然后在控制面板中开启服务或重启即可。

卸载后台服务:
到C:\James\james-2.1\bin即包含wrapper.exe的目录下,运行:
wrapper.exe -r C:\James\james-2.1\bin\wrapper.conf

请注意:当数据库与james在同一台服务器上时,如果简单将james设置为系统服务并设置为自动启动,可能它并不能在服务器开机时自动启动。因为当james使用数据库作为存储介质时,它的启动依赖于数据库服务的启动。因此,当该情况出现时,请为它添加服务依赖。

格式:sc config “james服务名” depend= “数据库服务名”

以Oracle为例:sc config “james 2.3.2″ depend= “OracleServiceOrcl”。尤其需要注意的是depend=后面要有一个空格。

james启动时SMTP默认在25端口,POP3在110端口,NNTP在119端口,telnet连接在4555端口。请确保这些端口没有被占用。
 使用记事本打开james-2.3.2\apps\james\SAR-INF\config.xml。找到Postmaster@localhost 改成自己想要使用的服务器名。比如Postmaster@fy.com 。同时,找到位于
<!– By default, the servername ‘localhost’ is specified. This can be removed, if required. –>
– <!–
–>
– <!– Warning: If you are using fetchpop it is important to include the –>
– <!– fetched domains in the server name list to prevent looping. –>
– <servernames autodetect=”true” autodetectIP=”true”>
– <!– CONFIRM?
–>
<servername> localhost </servername>
</servernames>
的localhost,把此项改为fy.com。这样就可以让其它机器也能访问邮件系统。
DNS配置:找到同上文件中<dnsserver>段中的如下程序段:
– <dnsserver>
– <servers>
– <!– CONFIRM? –>
– <!– Enter ip address of your DNS server, one IP address per server –>
– <!– element. The default configuration assumes a DNS server on the localhost. –>
<server>127.0.0.1</server>
</servers>
<authoritative>false</authoritative>
</dnsserver>
将127.0.0.1的位置填入DNS服务器的IP地址;
 修改管理员密码:
找到同上文件中的<administrator_accounts>段,如下程序段
– <administrator_accounts>
– <!– CHECKME!
–>
– <!– Change the default login/password.
–>
<account login=”root” password=”root” />
</administrator_accounts>将默认用户名root与密码root修改为需要的值
修改telnet管理程序登录端口 :(默认为4555)
找到同上文件中的<remotemanager>段下的port如下程序段
– <remotemanager>
<port>4555</port>
– <!– Uncomment this if you want to bind to a specific inetaddress
–>
– <!–
将<port>4555</port>之间的端口号4555改为需要的端口。
帐号管理
James的账号管理是通过telnet完成的,登录命令为:telnet fy.com 4555其中EmailServer也可以换成IP,4555是端口号。登录时需要用户名和密码,开始默认的用户名和密码均为root。若登录成功,提示如下:
JAMES Remote Administration Tool 2.1
Please enter your login and password
Login id:
此时输入root用户名,然后会出现:
Password:
输入密码root
注意:在有些操作系统如Windows2000上,用户输入均不显示。添加用户:adduser username password
2. james设置连接数据库:
james默认采用文件方式保存数据,可以通过配置使用数据库。
Java代码  收藏代码
  1. 1,找到<users-store>标签
  2.     将下边的这种文件存储方式注释
  3.     <repository name=”LocalUsers”
  4. class=”org.apache.james.userrepository.UsersFileRepository”>
  5.         <destination URL=”file://var/users/”/>
  6.     </repository>
  7.     把下边的数据库存储方式的注释打开或者新增
  8.     <repository name=”LocalUsers”
  9.  class=”org.apache.james.userrepository.JamesUsersJdbcRepository”
  10.  destinationURL=”db://maildb/users”>
  11.         <sqlFile>file://conf/sqlResources.xml</sqlFile>
  12.     </repository>
  13. 2,找到<data-source name=”maildb”这一行修改成以下内容
  14.     <data-source name=”maildb” class=”org.apache.james.util.dbcp.JdbcDataSource”>
  15.         <driver>oracle.jdbc.driver.OracleDriver</driver>
  16.         <dburl>jdbc:oracle:thin:@192.168.1.1:1521:test</dburl>
  17.         <user>test</user>
  18.         <password>test</password>
  19.         <keep-alive>select 1 from dual</keep-alive>
  20.             <testOnBorrow>true</testOnBorrow>
  21.             <testOnReturn>true</testOnReturn>
  22.             <max>50</max>
  23.         <poolPreparedStatements>true</poolPreparedStatements>
  24.     </data-source>
  25. 3,找到<inboxRepository>
  26.     将下边的这种文件存储方式注释
  27.     <inboxRepository>
  28.         <repository destinationURL=”file://var/mail/inboxes/” type=”MAIL”/>
  29.     </inboxRepository>
  30.     把下边的数据库存储方式的注释打开或者新增
  31.     <inboxRepository>
  32.         <repository destinationURL=”db://maildb/inbox/” type=”MAIL”/>
  33.     </inboxRepository>
  34. 4,找到<spoolrepository
  35.     将下边的这种文件存储方式注释
  36.     <spoolrepository destinationURL=”file://var/mail/spool/” type=”SPOOL”/>
  37.     把下边的数据库存储方式的注释打开或者新增
  38.     <repository destinationURL=”dbfile://maildb/spool/spool” type=”SPOOL”/>
  39. 5,将相应驱动拷贝到james/lib/下
注释:<outgoing> file://var/mail/outgoing/ </outgoing>
<repositoryPath> file://var/mail/error/</repositoryPath>
<repositoryPath>file://var/mail/spam/</repositoryPath>
<repositoryPath> file://var/mail/address-error/</repositoryPath>
<repositoryPath>file://var/mail/relay-denied/</repositoryPath>
去除注释:<outgoing> db://maildb/spool/outgoing </outgoing>
<repositoryPath> db://maildb/deadletter/error </repositoryPath>
<repositoryPath> db://maildb/deadletter/spam </repositoryPath>
<repositoryPath> db://maildb/deadletter/address-error </repositoryPath>
<repositoryPath> db://maildb/deadletter/relay-denied </repositoryPath>
总之,找到全部file://var/mail,注释。找到全部db://maildb,取消注释。

这样在你启动james时候就会在相应的数据库中创建表结构,本例中使用的是oracle,也可以用其他数据库

(前提是你的james已经成功运行)

3.  telnet命令列表:

help ———————————————显示帮助
Listusers —————————————-列出目前存在的账户
Countusers ————————————-显示目前存在的账户的数量
addusers [用户名] [密码] ———————–添加新用户
verify [用户名] ———————————-验证特定用户是否存在
deluser [用户名]———————————删除已存在用户
setpassword [用户名] [密码] ——————-设置某一用户的密码
setalias [别名] [用户名] —————–从本地将[别名]的所有邮件转寄[用户名]
unsetalias [别名] ——————————-取消setalias设置
setforwarding [用户名] [email地址] —-将[用户名]的邮件转寄指定[email地址]
unsetforwarding [用户名] ———————-取消setforwarding设置
user [资源]————————————–变为另一用户的资源
shutdown————————————–停止当前James邮件服务的JVM程序(对于James为后台服务时,用此命令很方便)
Quit ———————————————断开telnet连接

参考:

(1)james配置 http://www.open-open.com/doc/view/da0937fd89084fafa131e330deab39de

(2)james配置 http://www.5dmail.net/html/2009-7-27/2009727144527.htm

(3)james使用oracle http://xueguiping.iteye.com/blog/1056131
(4)james后台运行 http://hi.baidu.com/yebuyaoxiang/item/9cad21313ba2f7169dc65ef6
This entry was posted in Computer, Java. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s