Ubuntu+Sendmail+Dovecot+Openwebmail搭建邮件服务器

2011年4月1日 | 分类: Linux | 标签: , , , , ,

1.安装apache

apt-get install apache2

2.安装sendmail

apt-get install sendmail

#sasl2-bin已经同时安装,如果自己安装需要将/etc/default/saslauthd start=no 改为yes才能启动服务。

2.1设定Relay IP

在/etc/mail/access中添加允许Relay的地址

Connect:192.168.0.0 RELAY    #允许192.168.0.0网络的IP地址通过sendmail发信,也可以写成192.168.0

2.2设置收信的域名

在/etc/mail/local-host-names中添加收信的域名

ssh.tw

mail.ssh.tw

接收发往ssh.tw域和mail.ssh.tw域的邮件

2.3设置sendmail侦听范围,默认只侦听本机

编辑/etc/mail/sendmail.mc,按照下边内容修改:

DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=0.0.0.0′)dnl

DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, M=Ea, Addr=0.0.0.0′)dnl

修改完成后使用一下命令使修改生效:

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

2.5重启sendmail服务

/etc/init.d/sendmail restart

3.安装pop3服务

3.1需要的包:dovecot-common,dovecot-pop3d

apt-get install dovecot-common dovecot-pop3d

3.2修改配置文件/etc/dovecot/dovecot.conf(不使用ssl配置方法)

protocols = pop3
disable_plaintext_auth = no

ssl=no

mail_location = mbox:/var/mail:INBOX=/var/mail/%u

3.3重启dovecot服务

/etc/init.d/dovecot restart

3.4测试能否正常使用

telnet pop3_server 110

auth

user user_name

pass user_password

提示OK说明可以正常使用。

4.安装openwebmail

4.1下载openwebmail包

(地址:http://openwebmail.org/openwebmail/download/release/)

使用wget命令下载最新版的包到/tmp

4.2解压包到/var/www下

tar xvzf openwebmail.tar.gz -C /var/www

4.3安装所需要的包

apt-get install perl-suid    #不安装无法执行pl脚本

apt-get install libapache2-mod-perl2    #安装后apache2可以支持cgi程序

4.4修改cgi-bin的默认路径

编辑/etc/apache2/sites-available/default,修改下边两行:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

<Directory /var/www/cgi-bin>

修改后重启apache

/etc/init.d/apace2 restart

4.5配置openwebmail所需要的配置文件:

4.5.1将/var/www/cgi-bin/openwebmail/etc/default/auth_unix.conf

复制到/var/www/cgi-bin/openwebmail/etc目录下,并修改以下两行:

passwdfile_encrypted /etc/shadow

passwdmkdb none

4.5.2将/var/www/cgi-bin/openwebmail/etc/default/dbm.conf

复制到/var/www/cgi-bin/openwebmail/etc/目录下,并修改以下一行:

dbm_ext .pag

4.5.3修改/var/www/cgi-bin/openwebmail/etc/openwebmail.conf

mailspooldir /var/mail

ow_cgidir /var/www/cgi-bin/openwebmail

ow_cgiurl /cgi-bin/openwebmail

ow_htmldir /var/www/data/openwebmail

ow_htmlurl /data/openwebmail

default_language zh_CN.GB2312

default_iconset Cool3D.Chinese.Simplified    #写不正确的话不显示图片

4.6运行以下命令配置openwebmail

/var/www/cgi-bin/openwebmail/openwebmail-tool.pl –init

4.7设置软连接访问openwebmail

在/var/www下建立openwebmail文件夹并建立软连接

mkdir openwebmail

cd openwebmail

ln -s /var/www/data/openwebmail/redirect.html index.html

5.访问http://serverip/openwebmail就可以访问openwebmail了。

6.发送邮件需要smtp认证的单独设置

6.1先来看一下/usr/lib/sasl2/Sendmail.conf文件里面的内容应该是pwcheck_method:saslauthd,将这个 文件复制成smtpd.conf,这个文件也要在/usr/lib/sasl2/目录下:

cp Sendmail.conf smtpd.conf

6.2编辑sendmail.mc,添加以下两行

TRUST_AUTH_MECH(`DIGEST-MD5 LOGIN PLAIN’)
define(`confAUTH_MECHANISMS’,`DIGEST-MD5 LOGIN PLAIN’)

6.3使配置生效:

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

/etc/init.d/sendmail restart

/etc/init.d/saslauthd restart

6.4注意事项

配置好后,可以使用smtp验证发送邮件,不使用smtp验证也能够发送邮件

原因:发送和接收邮件在域内,如果发送的邮件地址不在域内,则可能是 /etc/mail/access文件未清空。

解决:将 /etc/mail/access文件清空。

要注意的一点:

修改任何配置,需要重新启动sendmail。

Written by an6097

  1. david
    2011年5月28日17:50

    你好,我是按照你的步骤去配置的,可以收发邮件,但是无法进行验证,我的是ubuntu10.04 server sendmail8.14.3 在/usr/lib/sasl2/下没有Sendmail.conf这个文件,手动添加smtpd.conf也是不行的。
    还有就是在/etc/mail/sasl这个文件有什么用呢?

    • 2011年5月28日21:07

      你好,刚才我重新安装了一次测试了一下,使用apt-get install sendmail命令,没有自动安装sasl2-bin这个包,跟我写文档时的情况有点差别,我使用apt-get install sasl2-bin安装了这个包并启动后,在/usr/lib/sasl2下确实没有Sendmail.conf这个文件,但是在我修改完sendmail.cf重新启动sendmail后,再查看/usr/lib/sasl2下,已经存在Sendmail.conf,使用ll查看/usr/lib/sasl2,可以发现Sendmail.conf是/etc/mail/sasl/Sendmail.conf.2的一个软链接。sasl是用来身份验证的,全称是Simple Authentication and Security Layer。我建议你核实一下你的sasl2-bin包是否安装,saslauthd服务是否启动,sendmail.cf配置完成后有没有重启sendmail服务。希望能帮到你。

      • david
        2011年5月29日12:23

        不好意识再次打搅,我有个问题想再次请教您。在网上看到有手动编译cyrus-sasl2的方法中提到可以检验sasl2,比如:

        5 下面我们将测试saslauthd.
        1 首先启动saslauthd
        # /usr/local/cyrus-sasl2/sbin/saslauthd -a shadow
        # cd /usr/local/src/cyrus-sasl-2.1.8/saslauthd
        # make testsaslauthd
        # ./testsaslauthd -u userid -p password (userid要是一个系统用户)
        # 0: OK “Success.”

        我这是能启动saslauthd 的 但是没找到能验证的方法。

        我 apt-get 了sasl2-bin后,是在/usr/lib/sasl2里生成了Sendmail.conf, 我也在sendmail.mc改了设置,但是在foxmail中把“smtp服务器需要身份认证”选中后,就不能发邮件了,535.5.7.0 535.5.7.0 authentication failed,请问博主有遇过吗?还是我少配置了什么。

        还有就是 1提示:smtp server reply 535.5.7.0 authentication failed 。
        2提示:535.5.7.0 authentication failed 。
        这两个提示有什么区别呢?

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。