安装sendmail webmail的教程

安装sendmail webmail的教程

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 修改4849行: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-MD5DIGEST-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上认证了。
9Pop3服务配置

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

新建帐户 testSMTPPOP3服务器为 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
12openwebmail配置

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

13HTTP服务的配置

Avi /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

错误:

1Software 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.

 achmod 771 /var/www/cgi-bin/openwebmail/etc/sessions

 This will set your perms properly for the sessions dir

 badd 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 onload="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)

6Shell 帐号不应该被允许,/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



8When 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