Apache James配置个人笔记(完整解决DNS问题)
Claros In Touch是一个功能强大,多协议支持的webmail(Pop3/IMAP)系统 (后续补充)
经过一番的辛苦努力,终于把James 配置搞定啦,好记性不如烂笔头啊,赶紧记下我的成功经过,以备以后查阅!
首先要做的就是配置域名的MX 记录啦:
先添加一条A记录:
mail.abc.com 指向 你的服务器IP!
然后添加域名的MX 记录,指向mail.abc.com A 记录( 即域名MX 记录的值为mail.abc.com).
OK ,域名的配置就完成啦!
接下来安装配置James :
James 不需要编译安装,解压即可以使用,把james 下载来后,必须先启动一下!
进入James 根目录下的bin 目录,启动:
127.0.0.1[bin]$ ./run.sh
Log 如下:
127.0.0.1[bin]$ ./run.sh
Using PHOENIX_HOME: /usr/local/james-2.3.2
Using PHOENIX_TMPDIR: /usr/local/james-2.3.2/temp
Using JAVA_HOME: /home/java/jdk1.6.0_11
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
JVM exiting abnormally. Shutting down Phoenix.
然后按Ctrl+C 停止。
第一次运行后,系统会在 apps 目录下面生成一些初始化的配置文件。如果第一次运行有问题,用 netstat 检查一下是否有系统默认的端口被占用了,比如 110,25 等。
进入配置文件目录修改config.xml 文件:
127.0.0.1 [SAR-INF]$ pwd
/usr/local/james-2.3.2/apps/james/SAR-INF
127.0.0.1 [SAR-INF]$ vi config.xml
查找替换所有的 localhost 为你的域名,比如 abc.com
查找所有 autodetect 属性,修改为 false 。 AutodetectIP 也设为 false.
vim命令 :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
注释掉
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor>
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet>
配置 DNS Server ,由于我未配置自己的 DNS 服务器,所以使用 Google 的 Public DNS :
如果是自己的服务器一般都有dns 查看dns地址:cat /etc/resolv.conf, 没有就用一下公共的吧
<dnsserver>
<servers>
<server>114.114.114.114</server> <!-- 国内公共DNS,比google的要快点 -->
<server>8.8.8.8</server>
<server>8.8.4.4</server>
</servers>
</dnsserver>
设置 autodiscover 为 false
注意 ,设置 DNS 这步很重要,发送邮件不成功的问题经常会出在这里!
有些文章说 ping 域名提供商管理设置的域名 DNS 来获得 IP ,我试过,这种方法基本上是不行了,所以我使用 Google 的Public DNS 。
当然,也可以自己做 DNS 服务器,使用 Bind 则可,但其麻烦程度不敢苟同,不建议新手使用!
配置 smtp server , pop3 server 等
查找所有 myMailServer, 替换为你的域名。如:
<helloName autodetect="false">myMailServer</helloName> ,将 myMailServer 修改为你的域名。比如: abc.com
注释以下的语句:
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet>
打开 smtp 认证
<authRequired>true</authRequired>
smtp 认证的作用在于不让未能授权的人使用你的邮件服务器发送垃圾邮件,在 <servername></servername> 里指定哪些域名可以使用这个邮件服务器,如:
<servername>abc.com</servername>
<servername>abc.com.cn</servername>
则当发送人地址为 XXX.abc.com 或者 XXX.abc.com.cn 时才能通过,如果写成 XXX.bbc.com 的话就不会通过验证,这种方式就禁止了不法人士使用啦!
修改 root 口令。 account login="root" password="mypassword"
启动 James( 使用 Phoenix.sh) :
./Phoenix.sh start
最后使用 telnet 添加邮件用户 ( 具体命令在 telnet 后输入 help 查看 ) :
telnet server-name 4555
转载来自: http://181054867.iteye.com/blog/777797 支持原作!
最近公司发布了一个JAMES邮件服务器, 第二天早一来, 发现spool里面有几万的垃圾邮件.
在网上仔细查了一下, 一般都是自定义一个matcher和一个mailet, 如:
Java代码
Java代码