原 荐 James邮箱服务器简单运行配置

栏目: 数据库 · 发布时间: 6年前

内容简介: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,它会每隔一段时间就把这个邮件发送一下。正确的做法是接收完后都删除,不只是改状态这么简单。因为如果只改了状态会出现一个问题就是接收邮件时,它从数据库读数据,读出邮件,如果你这时候再读,它会重复读取。所以接收完后是肯定要删除的。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网浪尖上的女性

互联网浪尖上的女性

田玉翠 / 人民出版社 / 2017-1 / 68.00

二十三个真实、前沿的女性创业者实例,带你走进“她世界”洞悉“她经济”。《互联网浪尖上的女性》不仅仅关于创业,更是关于女性如何追逐自己的梦想,让人生更丰满、更精彩。一起来看看 《互联网浪尖上的女性》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具