一.前期的准备工作
1.操作系统
linux CentOS5.8(其他的版本应该也可以这样操作)
2.搭建工具
jdk 1.7(需要1.4以上的版本)
Mysql 4.1
3.邮件服务器
4.中间件
Tomcat5.0.28
如果是CS结构的就不需要中间件了,如果需要中间件的话就是BS结构的,这里我只介绍cs结构的,因为bs结构的还没有试过,时间太短,一个人研究总是花很长时间
5.邮件系统客户端
CS结构:Outlook、Foxmail
BS结构:claros-intouch
6.数据库
Mysql(如果希望邮件服务器的数据以数据库表的的形式存在就需要数据库了,如果以文件的形式存在就不需要数据库了)
二.linux的前期配置
A.>查看域名:
[root@baidu ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost
192.168.0.8 baidu.com baidu(这是个例子,具体的要看自己去配置)/*因为没有dns域名,我用的是ip地址,10.96.92.94*/
内容格式: 本机的IP地址 域名 主机名
B.>如果没有配置linux系统的主机名和域名就需要配置下,内容如下:/*这一环节之前设定好可不用配置*/
查看network主机名:[root@baidu ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=(localhost)
如果没有配合就用vi命令配置下主机名:
[root@timesafer ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=(localhost)
修改完毕,保存退出 :wq
修改域名hosts: [root@baidu~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost
修改完毕,保存退出
C.>配置完毕重新启动操作系统
[root@timesafer~]# init 6
2.检察邮件服务器的端口
其SMTP 服务默认在 25 端口启动,POP3 服务默认在 110 端口启动, NNTP 服务默认在 119 端口启动, 请确保这些端口未被占用
A>查看端口服务
[root@baidu~]# lsof -i:25
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sendmail 4952 root 3u IPv4 8363 TCP linuxtest.com:smtp (LISTEN)
[root@baidu~]# lsof -i:110
[root@baidu~]#
上述情况说明 25端口被sendmail服务占用,110端口没有被占用
B>查看sendmail情况
[root@baidu~]# chkconfig --list sendmail
sendmail 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
C>关闭sendmail服务两种办法
方法一:关闭sendmail服务
[root@baidu~]# chkconfig sendmail off
关闭后需要重新启动才能生效
[root@timesafer~]# init 6
方法二:杀掉该端口相关进程/*这个不太好用*/
例如:查看端口25的进程信息
[root@baidu~]# netstat -tlnp |grep 25
tcp 0 0 192.168.0.8:25 0.0.0.0:* LISTEN 4952/sendmail: acce
杀掉senmail进程,其中4952为senmail的进程号
[root@timesafer~]# kill 4952
三.linux下jdk安装与配置
一>:先安装
1:先到网上下一个linux的JDK的版本 jdk-6u23-linux-i586.bin
2: 然后放到一个目录下 建议 /usr 再在这个目录下建设一个目录 java ,把下的版
本放到这个里面
3:刚放进来的执行文件没有执行文件.给一个执行权限
命令: chmod 777 jdk-6u23-linux-i586.bin
4:然后执行文件
命令: ./jdk-6u23-linux-i586.bin
5: 然后执行解压后的文件,有两种方法:
第一种是直接在图形化界面下进入到这个目录双机安装,
第二种就是命令模式: rpm -ivh jdk-1_5_0_06-linux-i586-rpm
二>:配置环境变量
打开配置文件 /etc/profile,修改环境变量
1.最简单的办法就是编辑/ect/profile,在文件最后的
2.#
3.# End of /etc/profile
4.#
5.
6.上面添加如下文本:
7.export JAVA_HOME=/usr/java/jdk1.6.0_06
8.export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
9.export JRE_HOME=$JAVA_HOME/jre
10.export PATH=$JAVA_HOME/bin:$PATH
作用分别是设置 JAVA_HOME , CLASSPATH , JRE_HOME , PATH 所指向的路径。跟windows下的意义一样。如果不懂可以查阅相关文档或者直接把以上文本复制粘贴到你的/ect/profile 中即可。
11.注销一下,使更改生效。
12.再查看一下当前的环境变量:echo $JAVA_HOME
例如:
[root@linuxtest ~]# echo $JAVA_HOME
/usr/j2sdk1.4.2_16
13.然后输入:java -version 查看当前JDK版本。
例如:
[root@linuxtest ~]# java -version
java version "1.6.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0_06-b05)
Java HotSpot(TM) Client VM (build 1.6.0_06-b05, mixed mode)
说明我们环境变量配置成功了。
/*用yum下jdk可能会遇到下载不完整的情况*/
四.mysql 的安装与配置
1、下载MySQL的安装文件 /*之前有了略过*/
安装MySQL需要下面两个文件:
MySQL-server-4.0.16-0.i386.rpm
MySQL-client-4.0.16-0.i386.rpm
下载地址为:www.mysql.com/downloads/mysql-4.0.html,打开此网页,下拉网页找到“Linux x86 RPM downloads”项,找到“Server”和“Client programs”项,下载需要的上述两个rpm文件。
2、安装MySQL
rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。
1)安装服务器端
在有两个rmp文件的目录下运行如下命令:
[root@test1 local]# rpm -ivh MySQL-server-4.0.16-0.i386.rpm
显示如下信息。
warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
。。。。。。(省略显示)
/usr/bin/mysqladmin -u root password \'new-password\'
/usr/bin/mysqladmin -u root -h test1 password \'new-password\'
。。。。。。(省略显示)
Starting mysqld daemon with databases from /var/lib/mysql
如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。
[root@test1 local]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
上面显示可以看出MySQL服务已经启动。
2)安装客户端
运行如下命令:
[root@test1 local]# rpm -ivh MySQL-client-4.0.16-0.i386.rpm
warning: MySQL-client-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-client########################################### [100%]
显示安装完毕。
用下面的命令连接mysql,测试是否成功。
三、登录MySQL
登录MySQL的命令是mysql, mysql 的使用语法如下:
mysql [-u username] [-h host] [-p[password]] [dbname]
username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可。
[root@test1 local]# mysql
Welcome to the MySQL monitor. Commands end with ; or \\g.
Your MySQL connection id is 1 to server version: 4.0.16-standard
Type \'help;\' or \'\\h\' for help. Type \'\\c\' to clear the buffer.
mysql>
出现了“mysql>”提示符,恭喜你,安装成功!
增加了密码后的登录格式如下:
mysql -u root -p
Enter password: (输入密码)
其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。
注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。
注释:mysql的这部分是网上找的,看看很好配置的,这里就不详细介绍了
四.apache james 的安装与配置
1)解压Apache James包(apache-james-2.3.2.tar.gz):
首先上传james到 /usr 路径下
命令:cd /usr
命令:rz 弹出的对话框中选择apache-james-2.3.2.tar.gz文件上传上去
解压文件命令:[root@susun177 local]# tar zxvf apache-james-2.3.2.tar.gz
解压后,会多了一个目录james-2.3.2
2)进入james-2.3.2/bin目录,运行run.sh,生成james的配置文件config.xml:
[root@susun177 bin]# sh run.sh (首先需要修改执行文件的权限,不然权限不够)
run.sh: line 37: /usr/local/james-2.3.2/bin/phoenix.sh: 权限不够
权限不够(估计是解压后run.sh文件没有赋予执行权限)
命令:[root@susun177 bin]# chmod +x run.sh phoenix.sh
然后再次运行run.sh命令:
命令:[root@susun177 bin]# sh run.sh
结果: Using PHOENIX_HOME: /usr/local/james-2.3.2
Using PHOENIX_TMPDIR: /usr/local/james-2.3.2/temp
Using JAVA_HOME: /usr/java/jdk1.5.0
Running Phoenix:
Phoenix 4.2
James Mail Server 2.3.2
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service started plain:119
FetchMail Disabled
说明James启动成功。
如果sendmail的端口还占用的话,james启动时候会报错如下:
Remote Manager Service started plain:4555 (远程登录服务端口)
POP3 Service started plain:110 (POP3占用的端口110已经启动)
org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: Component named "smtpserver" failed to pass through the Starting stage. (Reason: java.net.BindException: Address already in use).(smtp占用的端口已经被占用了,BindException是sendmail的服务)
3)按Ctrl + C退出James,编辑config.xml文件。生成的config.xml放置在../james-2.3.2/apps/james/SAR-INF目录下,在config.xml配置文件中修改以下内容:
****修改<postmaster>修改后的内容如下***
<postmaster>Postmaster@10.96.92.94</postmaster>
<servernames autodetect="false" autodetectIP="false">
<servername>10.96.92.94 </servername>
</servernames>
******注释掉<mailet match="InSpammerBlacklist。。。 *********
<!-- <mailet match="InSpammerBlacklist=dnsbl.njabl.org."
class="ToProcessor">
<processor> spam </processor>
<notice>550 Requested action not taken: rejected - see http://njabl.org/ </notice>
</mailet> -->
****修改DNS配置*****
<dnsserver>
<servers>
<!--Enter ip address of your DNS server, one IP address per server -->
<!-- element. -->
<!--
<server>127.0.0.1</server>
-->
<server>自己的机器ip地址或者公用的DNS IP地址10.96.92.94</server>
</servers>
<!-- Change autodiscover to false if you would like to turn off autodiscovery -->
<!-- and set the DNS servers manually in the <servers> section -->
<autodiscover>false</autodiscover>
<authoritative>false</authoritative>
<!-- Maximum number of entries to maintain in the DNS cache -->
<maxcachesize>50000</maxcachesize>
</dnsserver>
注释:DNS配置很关键,关于这块的配置你可以选择一些公用的DNS ip地址,也可以是本机的ip地址
*******修改<authRequired> 改后内容如下********
<authRequired>true</authRequired>
****添加注释的地方,注释后如下***
<!-- <authorizedAddresses>127.0.0.0/8</authorizedAddresses> -->
****可选配置********************
<spoolrepository destinationURL="file://var/mail/spool/" type="SPOOL"/>
<!-- Alternative spool repository definition for JDBC use -->
<!-- <spoolrepository destinationURL="db://maildb/spool/spool" type="SPOOL"/> -->
<!-- Alternative spool repository definition for JDBC use -->
<!-- Stores message body in file system, rest in database -->
<!-- <spoolrepository destinationURL="dbfile://maildb/spool/spool" type="SPOOL"/>-->
如果希望用数据库来存贮 就注释掉黄色部分,如果不用数据库存贮就注释掉红色部分
这里介绍注释掉红色部分
4) 重启Apache James服务。
命令:cd /usr/james…../bin
命令:sh run.sh
注意看启动信息,出错的话会报错,一般是地址被占用(查看端口25和110是否被占用),和数据库配置错误(建议刚开始配置不要配置数据库,一步一步来,先配置文件存储,然后再改为数据存储)
5)最后,进入邮件系统全局管理,将系统的域名改为上述的server name。
服务启动成功后用telnent命令进入服务后台
命令:telnet baidu.com 4555
输入用户名:root
密码:root
其中用户名和密码也是在config.xml文件里配置的,这里没有介绍,默认的是root
6)如无意外一切OK。
常用的用户信息操作命令参见下表:
* Currently implemented commands: 常用实现命令
* help display this help 显示帮助信息
* listusers display existing accounts 显示现有账户
* countusers display the number of existing accounts显示现有账户数量
* adduser [username] [password] add a new user 添加一个新用户
* verify [username] verify if specified user exist 核实指定用户是否存在
* deluser [username] delete existing user 删除存在的用户
* setpassword [username] [password] sets a user’s password 设置用户密码
* setalias [user] [alias] locally forwards all email for ‘user’ to ‘alias’ 设置邮箱别名
* showalias [username] shows a user’s current email alias显示别名
* unsetalias [user] unsets an alias for ‘user’ 删除用户别名
* setforwarding [username] [emailaddress] forwards a user’s email to another email address
转发用户的电子邮件地址到另一个电子邮件地址
* showforwarding [username] shows a user’s current email forwarding显示用户的当前邮件转发
* unsetforwarding [username] removes a forward 删除转发
* user [repositoryname] change to another user repository 改变另一个用户库
* shutdown kills the current JVM (convenient when James is run as a daemon) 关闭当前的服务
* quit close connection 关闭连接
命令使用例子:
adduser chenfengcn 881213 来添加一个的邮件用户,
用户名为:chenfengcn,密码为:881213,
邮箱地址为:chenfengcn@baidu.com(用户名后的域名跟服务器配置的域名相同)
四.apache james 的cs结构客户端配置
1. Outlook配置,主要注意的地方如图
2. Foxmail配置
Foxmail配置比outlook简单多了,这里就不介绍了
最后注意:在发送接收邮件之前最好测试下
测试成功了就OK了
在接收邮件的时候注意要点“发送接收”,不要傻傻的等待,以为发送和接收速度很慢呢,如图
发送完毕,一定要点哦,不然到死你也不知道接收到没有
服务器接收邮件的话就必须有域名了,因为发送到你的服务器的话,公网需要解析你的域名,然后根据你的域名找你的服务器,不然找不到你的服务器,也就发送不到你的邮箱里了.