内容简介: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 邮箱
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
模式识别
(希)Sergios Theodoridis、(希)Konstantinos Koutroumbas / 电子工业出版社 / 2010-2 / 75.00元
本书全面阐述了模式识别的基础理论、最新方法以及各种应用。模式识别是信息科学和人工智能的重要组成部分,主要应用领域有图像分析、光学字符识别、信道均衡、语言识别和音频分类等。本书在完美地结合当前的理论与实践的基础上,讨论了贝叶斯分类、贝叶斯网络、线性和非线性分类器设计、上下文相关分类、特征生成、特征选取技术、学习理论的基本概念以及聚类概念与算法。与前一版相比,增加了大数据集和高维数据相关的最新算法,这......一起来看看 《模式识别》 这本书的介绍吧!