由于在工作中遇到要写一个发送邮件的模块,这时候就需要一个邮件服务器作测试,但是windows的smtp服务并不满足我们的要求,比如在xp下它并不提供CRAM-MD5 和DIGEST-MD5认证,后来发现在linux下能提供这样的邮件服务器,这里以fedora 9 为例来谈一谈它搭建的步骤:
- 准备工作
安装sendmail 和dovecot,
察看是否有安装:
rpm -qa sendmail m4 dovecot
如果没有安装则安装:
yum install sendmail m4 devecot
其实我是在安装fedora 9 的过程中选择邮件服务器,然后点选sendmail m4 devecot 进行安装的
- 设定邮件服务器
- 首先要设定邮件服务器的域名,比如设定为test.com, 这时就可以给 用户名@test.com 这个邮件发送邮件,修改/etc/mail/local-host-name
添加test.com即可。
- 修改/etc/mail/sendmail.mc, 这是sendmail的配置文件,该配置文件必将复杂,但我们只修个几个地方:
dnl DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1,Name=MTA') dnl ( 116行),把前面的dnl去掉,127.0.0.1 改为0.0.0.0
dnl TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN') dnl ( 52行)
dnl define('confAUTH_MECHANISMS','EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN') dnl (53行)
把这两行前面的dnl 拿掉,就是要开启CRAM-MD5 和DIGEST-MD5认证,
-
- 修改/etc/dovecot.conf: protocols = pop3
-
重启服务sendmail,dovecot,可通过GUI来做,如图:
- 这时可测试一下:
telnet 127.0.0.1 25
telnet 127.0.0.1 110
如果你能看到如图的样子,说明成功了:
- 首先要设定邮件服务器的域名,比如设定为test.com, 这时就可以给 用户名@test.com 这个邮件发送邮件,修改/etc/mail/local-host-name
- 添加邮件帐户
- groupadd mailuser
- adduser -g mailuser -s /sbin/nologin mike
- passwd mike
- 其实这些也可在GUI下去作,如图:
- 打开防火墙, 这里主要把smtp 和pop3 的端口放开:
在trust server 勾选smtp,
other ports 添加pop3 端口:
- 用outlook 连接邮件服务器
说明已经ok了.
但是这个时候又有一个问题,我发现我的outlook不能往外面的smtp 发送邮件,这时就会用到/etc/mail/access文件,
如果我想通过outlook 往其他邮件服务器发送邮件,就要把我的outlook 所在的pc的IP 地址填入access 文件中,并在后面补上:RELAY,如下:
connect:192168.0.101 RELAY
最后执行:makemap hash access.db < access
重启sendmail, 测试成功了!