sendmail webmail安装(linux)
[root@dns mail]# rpm -qa|grep sendmail
sendmail-cf-
8.13.4
-2
sendmail-8.13.4-2
[root@dns mail]# rpm -qa|grep sasl
cyrus-sasl-2.1.20-5
cyrus-sasl-plain-2.1.20-5
gnu-crypto-sasl-jdk1.4-2.0.1-1jpp_5fc
cyrus-sasl-md5-2.1.20-5
[root@dns mail]# rpm -qa|grep dov
dovecot-0.99.14-4.fc4
1、安装好LINUX FC4
主机名:dns
IP地址:10.11.61.97/24
在安装系统的时候,选择安装sendmail
版本为:sendmail-cf-
8.13.4
-2
sendmail-8.13.4-2
2、设置好DNS MX记录
3、进入目录/etc/mail,修改相关文件
#cd /etc/mail
#cp sendmail.cf sendmail.cf.old //备份sendmail.cf文件
#vi sendmail.mc
A 在47行后加入:define(QUEUE_DIR, `/var/spool/mqueue/q*')
手动添加的,与认证无关,作用是启动多个邮件队列,为了获得更好的传输性能.
B 修改48、49行:TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
即去掉dnl注释, TRUST_AUTH_MECH”的作用是使sendmail不管access文件中如何设置,都能 relay 那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件,”confAUTH_MECHANISMS" 的作用是确定系统的认证方式。Outlook Express支持的认证方式是LOGIN。
C 在第113行加上dnl
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
以便让sendmail可以侦听所有网络设备,为整个网络提供服务,而不仅仅只对本机提供服务。
D 在第120行修改成
DAEMON_OPTIONS(`Port=25, Name=MSA, M=Ea')dnl
在smtp的默认端口(25)上进行认证,而不是587端口。这样就强制所有使用该邮件服务器进行邮件转发的用户在认证后才能发邮件了。
4、重新生成sednmail.cf文件
# m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf
(修改附件大小:在/etc/sendmail.cf文件中找到下面两行
# maximum message size
O MaxMessageSize=2048000
)
5、 既然我们打开了多个队列,现在我们在/var/spool/mqueue/下创建任意多个队列目录,运行:
# cd /var/spool/mqueue
# mkdir q1 q2 q3 q4 q5 q6
6、修改/etc/mail/local-host-names,将希望该邮件服务器使用的邮箱名加进去,比如邮箱为:xxx@sz.abc.com则将sz.abc.com加入到该文件中。
7、重新启动sendmail服务,运行:
# service sendmail restart
8、可以通过telnet 本机IP 25来验证sendmail服务是否已经正常启动,若登陆成功,则说明sendmail服务已经成功启动。
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'
220 localhost.localdomain ESMTP Sendmail
8.12.8
/8.12.8; Wed, 12 May 2004 15:57:01 +0800
ehlo localhost
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-AUTH GSSAPI LOGIN PLAIN
250-DELIVERBY
250-HELP
quit
#
在AUTH后面有LOGIN就基本上可以在OutlookExpress上认证了。
9、Pop3服务配置
A 检查有没有安装FC4中的dovecot-0.99.14-4.fc4.i386.rpm,如没有,请安装
B 启动pop3:
#/etc/rc.d/init.d/dovecot restart
C 检查服务是否启动
#lsof -i:110
D 如果想开机启动,则运行ntsysv->选择dovecot->确定
10、使用
a. 创建新邮箱
任何Linux新用户都自动有一个邮箱,比如创建用户test,则其邮箱为 test@sz.abc.com
#mkdir /home/email
#useradd -d /home/email test -s /sbin/nologin
b. 使用outlook
新建帐户 test,SMTP和POP3服务器为 mail.sz.abc.com, 用户名 test,口令为Linux改用户口令,选中"我的服务器要求身份认证"
c. 使用test@sz.abc.com
现在可以使用test@sz.abc.com收发信
10、安装apache:要是系统默认安装,就可以跳过。要是没有安装,从www.apache.org上下载最新版本。我用的是httpd-
2.0.58
.tar.gz
安装步骤:
A #tar zxvf httpd-2.0.58.tar.gz
B #cd httpd.2.0.58
C #./configure --prefix=/var/www
D #make
E #make instal
F 启动:#/var/www/bin/apachectl start
如果出错: httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for SeverName
请修改文件:vi /var/www/conf/httpd.conf
增加: ServerName <server_name_or_ip_addr>
我的改为:
ServerName www.sz.abc.com:80
11、安装openwebmail。
A 下载相关的软件:
perl-Compress-Zlib-1.34-2.i386.rpm
perl-suidperl-
5.8.6
-15.i386.rpm
perl-Text-Iconv-1.4-2.i386.rpm
MIME-Base64-3.01.tar.gz
openwebmail-2.52-1.i386.rpm
perl-CGI-2.81-88.i386.rpm
B 安装rpm包
#rpm -ivh perl-Compress-Zlib-1.34-2.i386.rpm
#rpm -ivh perl-suidperl-
5.8.6
-15.i386.rpm
#rpm -ivh perl-Text-Iconv-1.4-2.i386.rpm
#rpm -ivh perl-CGI-2.81-88.i386.rpm //(这个包一般默认被安装)
#rpm -ivh openwebmail-2.52-1.i386.rpm
#tar -xzvf MIME-Base64-3.01.tar.gz
#cd MIME-Base64-3.01
#perl Makefile.PL
#make
#make install
12、openwebmail配置
A 、初始化数据库
#cd /var/www/cgi-bin/openwebmail
#./openwebmail-tool.pl --init
会出现更改信息提示,但提示要修改的dbm.conf文件路径有问题,应该是如下:
/var/www/cgi-bin/openwebmail/etc/defaults/dbm.conf
Please change './etc/dbm.conf' from
dbm_ext .db
dbmopen_ext none
dbmopen_haslock no
to
dbm_ext .db
dbmopen_ext .db
dbmopen_haslock no
B、#touch /var/www/cgi-bin/openwebmail/openwebmail*.pl (没注意看提示,反正我执行了)
修改后执行#./var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
如果没有错误提示,仅有发送报告提示,说明配置成功。
Send the site report?(Y/n) y //我选了y
sendming report... //不要急,请等一会儿
Thank you. //表示安装成功。
C、修改/var/www/cgi-bin/openwebmail/etc/openwebmail.conf
default_timeoffset +0800 (设置时区为中国时间)
default_language zh_CN.GB2312 (界面改成中文啦,使用者也不一定熟悉英文)
domainnames auto更改为:domainnames easy.com (更改为自己定义的域名)
default_language en更改为:default_language zh_CN.GB2312 (更改为简体中文版介面)
default_iconset Cool3D.Englist更改为:default_iconset Cool3D.Chinese.Simplified (更改为中文3D按键)
更改修改LOGO链接:
logo_link http://openwebmail.org
logo_link http://www.sz.abc.com
13、HTTP服务的配置
A、vi /var/www/conf/httpd.conf
按如下修改:
<Directory /var/www/cgi-bin>;
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
</Directory>;
请注意 "Order allow,deny" 和 "Allow from all" 缺省没有时,必需加上。
B、如果要将openwebmail设置成一个虚拟目录,方便访问。如:http://ipaddress/webmail
应在httpd.conf加入以下字段
ScriptAlias /webmail "/var/www/cgi-bin/openwebmail/openwebmail.pl"
Alias /data "/var/www/data"
C、#/var/www/bin/apachectl restart
D、测试 打开浏览器,在地址栏里输入:http://www.sz.abc.com/webmail
错误:
1、Software error:
Undefined subroutine &ow::htmltext::str2html called at /var/www/cgi-bin/openwebmail/shares/ow-shared.pl line 1283.
For help, please send mail to the webmaster (you@example.com), giving this error message and the time and date of the error.
a、chmod 771 /var/www/cgi-bin/openwebmail/etc/sessions
This will set your perms properly for the sessions dir
b、add the line:
require "modules/htmltext.pl";
to openwebmail.pl with the other requires in the modules/ section.
If you do this fix and not the perm fix, you will still get an error in
your browser about the sessions dir not being writable.
2、无法建立 /home/email/mail (Permission denied)
#chmod 777 /home/email
3、让 Open WebMail成为Server预设首页
建立一个index.html文档, 內容如下 a 或 b都可
a.
<html><head>
<meta http-equiv="Refresh" content="0;URL=http://your_server/cgi-bin/openwebmail/openwebmail.pl">
</head></html>
b.
<html>
<body οnlοad="window.open('http://your_server/cgi-bin/openwebmail/openwebmail.pl','_top')">
</body>
</html>
然后将index.html 拷貝到 http server 的 document root,
以 Linux/RedHat为例:在 /var/www/htdocs/中
4、用户在收发邮件时,出现“请输入服务器的用户名和密码,用户名:test;密码:*****窗口”,用户输入用户名和密码后,仍然停在窗口上,不能发送邮件
解决:
#saslauthd -a shadow
5、
a 先来看一下/usr/lib/sasl2/Sendmail.conf文件,里面的内容应该是pwcheck_method:saslauthd,将这个 文件复制成smtpd.conf,即cp Sendmail.conf smtpd.conf,这个文件也要在/usr/lib/sasl2/目录下;
b 然后/etc/init.d/saslauthd start来启动sasl的密码认证(要每次开机自动启动这项服务,就运行ntsysv选中saslauthd,再存盘退出ntsysv)。
验证方法:#testsaslauthd -u zhou -p abc1234
0: OK "Success." //如果出现以上信息,就说明saslauthd正常运行了
c 修改/etc/mail/sendmail.mc文件,有3个地方要改:
第42行和43行,把最前面的dnl删除,变成:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
第84 行DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl把里面的127.0.0.1改成
0.0.0
.0,这是让sendmail监听在全部网络端口上,而不是只监听在lo上,有很多 人抱怨sendmail没办法收信,这是最基本要修改的地方
好了,都改完了,我们存盘退出。
d 把mc文件编译成sendmail的配置,运行m4 sendmail.mc > sendmail.cf;
e ./etc/init.d/sendmail restart(重新启动sendmail)
6、Shell 帐号不应该被允许,/etc/passwd 文件中的所有用户 shell 都应该被设置为 /sbin/nologin,在添加系统用户时可以useradd -s
检测:
telnet xxxx 25
ehlo xxx
mail from : xx@sz.abc.com
rcpt to : yy@sz.abc.com
data
SUBJECT:test
xxxx
7、我怎么检查一封邮件的发封过程?
在Sendmail邮件服务器上执行下面的命令.
# echo testing | /usr/sbin/sendmail -v test1@sz.abc.com
表示以当前用户发送邮件到test1@sz.abc.com,内容为testing
8、When sending an e-mail to a local account, Sendmails queues it and complains with "MX list for acme.com. points back to mylinux.acme.com [...] DSN: Local configuration error"
在文件/etc/mail/local-host-names中增加本地域名,如
#cat /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
sz.abc.com
9、修改了/etc/mail/access文件后,要更新,执行
#makemap hash access.db < access