内容简介:James简单运行配置James:Java Apache Mail Enterprise Server 是一个企业级的JAVA邮件服务器.开源的.一.配置;
James简单运行配置
James:Java Apache Mail Enterprise Server 是一个企业级的 JAVA 邮件服务器.开源的.
一.配置;
首先将james-binary-2.3.1.zip解压缩下载到你的安装目录。
我们可以把这个过程理解为安装的过程。我在这里将它解压到c:\.并且把它改名为james.这样我们的james就安装好了。目录为C:\james。在此之前你得安装JDK,配置JAVA环境变量.
james的应用程序结构
apps,bin,conf,ext,lib,logs,tools
文件夹bin
bin目录中的run.bat和run.sh是James的启动程序。只要记住这个重要文件就可以。
启动之后控制台显示如下:
Using PHOENIX_HOME: C:\james //james安装目录 Using PHOENIX_TMPDIR: C:\james\temp //james安装目录中的temp目录,用处不详 Using JAVA_HOME: C:\javaJdk //本机安装的JDK目录 James Mail Server 2.3.1 //james版本 Remote Manager Service started plain:4555 //james端口 POP3 Service started plain:110 //pop3 端口,可在config.xml中配置 SMTP Service started plain:25 //smtp 端口,可在config.xml中配置 NNTP Service started plain:119 //nntp 端口,可在config.xml中配置 FetchMail Disabled
文件夹Apps
Apps 目录下有个james的子目录这个目录是它的核心。
- SAR-INF 下有一个config.xml是james中的核心配置文件。
- Logs 包含了与james有关的Log。调试全靠它了。
- Var 包含了一些文件夹通过它们的名字我们大概也能猜测出它们的用途。Mail主要用于存储邮件。nntp主要用于新闻服务器。Users用于存储所有邮件服务器的用户。也就是邮件地址前面的东东。如:pig@sina.com的pig就是所谓用用户。
创建用户
在James上建若干用户,用来测试收发邮件。当然如果你不用james本身的用户也可以。James以telnet 的方式提供了接口用来添加用户。下面我来演示一下。
首先使用telnet来连接james的remote manager
telnet localhost 4555 回车
这里连接到的是本机:localhost这个也是可以在config.xml里配置的,当然,如果配置成其他服务器,则需要将端口映射到本机上,这个可以在路由器里配置:192.168.0.1(具体地址视局域网而定)。
然后输入管理员用户名和密码(user/pwd : root/root 是默认设置这个可以在config.xml中修改)
JAMES Remote Administration Tool 2.3.1 Please enter your login and password Login id: root Password: root Welcome root.HELP for a list of commands
添加用户
adduser test test User test added Adduser lyle lyle User lyle added
查看添加情况
listusers Existing accouts 2 user:lyle user:test
更改配置文件:config.xml:
更改端口:
pop3server -- <port>201</port> smtpserver -- <port>202</port> nntpserver -- <port>203</port>
更改邮件服务器地址:
servernames -- <servername>whsite.ine.net.cn</servername>或:<servername>127.0.0.1</servername> administrator_accounts -- <account login="lyle" password="lyle"/>
收邮件:
(因为是用pop3.whsite.ine.net.cn收邮件,所以收件人,发件人的邮件地址都必须是这个服务器上的,所以我们在whsite.ine.net.cn上重新建一个帐号,然后给自己发邮件以测试);
一,打开james服务;
1)运行安装目录下bin/run.bat;
2)打开CMD;
telnet whsite.ine.net.cn 4555 //连接到服务端口; JAMES Remote Administration Tool 2.3.1 Please enter your login and password Login id: sunyu Password: sunyu Welcome root. HELP for a list of commands adduser sunyu 123456 //添加用户,用户名为sunyu 密码为:123456 quit //断开连接 telnet whsite.ine.net.cn 201 //连接到POP3端口; user sunyu 回车; pass 123456 回车; list //查看邮件列表; retr 1 //查看第一封邮件;
其他命令还有:
1,stat 查询邮箱中的所有邮件的统计信息,一般只有邮件总数和所有邮件占用的字节大小
2,uidl 根据邮件的序号查询该邮件的唯一标志符
3,list 查询邮箱中的所有邮件信息,以列表形式列出,自动生成邮件序号。如果指定某一序号则只显示指定邮件信息
4,retr 指定邮件序号查看某邮件内容
5,dele 指定邮件序号将某封邮件设置删除标记,当执行退出命令 quit时将实际删除所有具有删除标记的邮件
6,rset 清除所有设置了删除标记的邮件的删除标记
7,top 获取某邮件的邮件头和邮件体中的前n行内容,指定邮件序号和n,以空格符隔开
发邮件:
1)连接端口;
telnet whsite.ine.net.cn 202
2)确认身份
ehlo lyle
3)输入发件人;
mail from:<lyle@whsite.ine.net.cn>
4)输入收件人:
rcpt to:<lyle@whsite.ine.net.cn>
5)输入内容:
data hello word! 回车 . 回车
这时候再进入pop3端口即可查看邮件;
默认情况下,发完出的邮件,用户信息,接收的邮件是保存在本地目录中的,默认目录是:
C:\james\apps\james\var\users:用户
C:\james\apps\james\var\mail:邮件,里面有inboxes(收件箱)outgoing(发件箱)以及一些错误信息;
当然,我们可以选择将邮件和用户信息保存在数据库中.也就是说要将James和数据库连接起来;这个连接是在config.xml里配置的;在config.xml里找到:<users-store></users-store>项,它是用来保存用户信息的;默认时它里面的是:
<repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">
<destination URL="file://var/users/"/>
</repository>
意思就是说用户信息存在文件系统中的目录:users里面;
我们可以对这个设置进行更改;但James提供了现成的配置,只不过被注释掉了.我们打开注释或手写:
<repository name="LocalUsers" class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://maildb/users">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
意思就是将 用户信息保存 在数据库的users表里.具体的 SQL 是在本地文件系统中的sqlResources.xml中配置的;
然后就是 邮件信息的保存 :
找到<inboxrepository>项, 默认是<repository destinationurl="file://var/mail/inboxes/" type="mail">
屏蔽掉,在它下面有个例子<repository destinationurl="db://maildb/inbox/" type="mail">,激活它.
然后是spool,找到<spoolrepository>将默认屏蔽掉.
激活<repository destinationurl="db://maildb/spool/spool" type="spool"/>
这时候数据库中会自动建两个表:spool和inbox;spool是临时表,只要通过邮件服务器的邮件,不管是发,收,都会存到这个表里。存入的时候邮件有个状态:message_state,状态的值有几种,transe..span,root等第一个表示正在传,当传完后邮件服务器会自动删除这条邮件(此功能可配置,后面有介绍,通过改删除邮件的SQL可屏蔽此功能);当接收一个邮件时,也是先放在spool表里。然后往inbox表里转存;
所以,这时候我们又要对数据库进行配置,让James知道是哪个数据库,在什么地址;
在config.xml里找到<database-connections />项.它就是数据库连接的配置;在根据要连接的数据库的不同,配置的写法也不同,文件里有一些数据库写法的提示,如oracle,mysql,mssql:但要注意的是,实际上的最终正确的写法是根据数据驱动的不同而不同的.如:
<data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">
<driver>oracle.jdbc.OracleDriver</driver>
<dburl>jdbc:oracle:thin:@192.168.0.55:1521:oracle</dburl>
<user>RDNEW</user>
<password>123456</password>
<max>20</max>
</data-source>
</database-connections>
上面这个是oracle的.
在连接mssql里,文件里提示的写法是:
<data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">
<driver>com.inet.tds.TdsDriver</driver>
<dburl>jdbc:inetdae7:127.0.0.1?database=James</dburl>
<user>sa_james</user>
<password>blahblah</password>
<max>20</max>
</data-source>
但实际上我在配置时的写法是:
<data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">
<driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver>
<dburl>jdbc:sqlserver://192.168.0.120:1433;databaseName=oadb</dburl>
<user>sa</user>
<password>root</password>
<max>20</max>
</data-source>
差别主要体现在dburl这一项;
配置完成后将对应的数据驱动的jar放在James安装根目录下的lib目录下即可;这时,运行run.bat.就可.如果在配置的数据库中没有users这个表,它会自动创建这个表;
注意:当更改默认端口后,外网发过来的邮件接收不到.所以还是用默认的:110 25 为好,同时要在路由器上将这两个端口映射到本机上.成功后的配置文件在网易网盘中.而且这个配置里面邮件和用户新建后是存在数据库中的,因为项目用的是oracle数据库,所以要将oracle数据驱动的jar文件复制到lib文件夹下.运行服务后会自动在数据库里建表:users(用户),spool(邮件),在邮件表里默认是select一次后就自动删除,即:收到邮件并查看后就自动删除.要更的话可以更改:conf/sqlResources.xml里的SQL语句.我是这样改的:
<sql name="removeMessageSQL">DELETE FROM ${table} WHERE message_name = ? AND repository_name = ?</sql>
将上面的这条语句里的问号:?改成123;当然,我这样改了后还有一个例外情况:当上面两个字段都为123时它还是会被删除,不过这种情况在我当时的项目中貌似不会发生。。。
另外要注意的是:spool表里的数据是邮件服务器的表。我们一般会在项目中有自己的邮件表,我们收邮件的时候从spool表里读取数据后应该删除spool里的内容;
如果不删,起码也应该将spool表里数据中message_state这个字段的值改成:
spam默认情况下它的值是:trans..什么的。如果不改成spam,它会每隔一段时间就把这个邮件发送一下。正确的做法是接收完后都删除,不只是改状态这么简单。因为如果只改了状态会出现一个问题就是接收邮件时,它从数据库读数据,读出邮件,如果你这时候再读,它会重复读取。所以接收完后是肯定要删除的。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Zabbix服务器设置邮箱报警
- C# 使用 QQ 邮箱发送邮件
- 让 QQ 邮箱更好用,支持桌面通知
- 如何修改git已提交记录的邮箱?
- swpu ctf 有趣的邮箱注册 详细题解
- 微软确认有黑客入侵了部分 Outlook 邮箱
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Making Things See
Greg Borenstein / Make / 2012-2-3 / USD 39.99
Welcome to the Vision Revolution. With Microsoft's Kinect leading the way, you can now use 3D computer vision technology to build digital 3D models of people and objects that you can manipulate with g......一起来看看 《Making Things See》 这本书的介绍吧!