学习笔记:sendmail配置
时间:2009-07-16 来源:bloodmanminmin
Sendmail邮件配置
安装包(sendmail-8.13.8-2.el5.i386.rpm,sendmail-cf-8.13.8-2.el5.i386.rpm,m4-1.4.5-3.el5.1.i386.rpm)
由于sendmail的真正配置文件作者是用一种生僻的语言写的,号称天书,没几个人看得懂,所以我们配置的时候是配置的/etc/mail/sendmail.mc,这个比较好懂,每次修改后都要用m4 sendmail.mc > sendmail.cf将修改的内容写到天书里面去。
/etc/mail下面的文件
[root@Server mail]# ls
access domaintable.db mailertable sendmail.cf submit.cf trusted-users access.db helpfile mailertable.db sendmail.cf.bak submit.cf.bak virtusertable domaintable local-host-names Makefile sendmail.mc submit.mc virtusertable.db 首先修改local-host-names vim local-host-names # local-host-names - include all aliases for your machine here.
mail.test.com #让sendmail知道哪些邮件属于本地域的邮件,这里添加了@mail.test.com
test.com #和@test.com,凡是邮件后缀是这2个的都认为是本地邮件。 (这个东西就是决定邮件后缀的啦) 修改配置文件sendmail.mc #这个只是比较易懂的配置文件,修改以后必须用m4生成sendmail.mc才生效
首先先来修改服务器smtp的监听范围,就是来自哪个地方的邮件sendmail会帮他发送。默认是监听本机的,所以在客户端发邮件不成功。 修改之前我们应该备份一下配置文件,以免修改乱了还可以还原回来。 cp -avp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.bak cp -avp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak 修改的地方: 112 dnl # The following causes sendmail to only listen on the IPv4 loopback address
113 dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
114 dnl # address restriction to accept email from the internet or intranet.
115 dnl #
116 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 将Addr=127.0.0.1改为0.0.0.0即可 m4 sendmail.mc > sendmail.cf service sendmail restart #如果启动很慢,vim /etc/hosts文件,加入 #192.168.x.x mail.test.com Server(DNS里面 设置的也加进来) 重点:192.168.0.1 mail.test.com Server中,完全合格域名mail.test.com要写在前面,如果不写或者写在后面,主机会先去查找后面Server的IP,一直找一直找,这就是为什么通过SMTP发信的时候超级慢得原因,如果先查找文件中的Server,这个在DNS里面没有注册,会尝试查找很久,一直找不到,才会找后面的完全合格域名。 邮件发送 现在默认本地用户就可以发信了,还不能用pop收信,要安装dovecot这个组件才能启用pop3收信。 那么往外域发送邮件呢?下面就来进行邮件中继的设置 2台电脑之间发生的邮件收发不会产生中继,只是涉及到smtp。(包括2个MTA之间)涉及到3台电脑的就会有中继发生,最常见的就是内部用户通过本地的邮件服务器外发给外域的用户。 有2个方法实现邮件中继: 1、修改/etc/mail/access文件, # Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY (默认只对本机发送的邮件中继,在下面添加中继) 192.168.2 RELAY #192.168.2.0/24网段可以中继 2、启用smtp身份认证,凡是属于我服务器的合法用户都中继 修改/etc/mail/sendmail.mc …… 50 dnl # Please remember that saslauthd needs to be running for AUTH.
51 dnl #
52 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl …… 红色2行就是和smtp认证有关的,取消前面的dnl注释,不要留空格,就开启了smtp认证功能。 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf service sendmail restart service saslauthd restart #和认证相关的服务,不开这个就启用不了smtp身份认证。 开启认证以后客户端的MUA要在服务器一项上设置我的smtp服务器需要身份验证,但是如果是第一种方法就不需要了。 邮件别名:可以定义一个或多个用户的别名,发送的时候收件人为设定的别名就可以了 修改/etc/aliases #启用转发,发给某个用户的邮件自动转发到指定的另外一个用户 # Person who should get root's mail
#root: marc rsb: tom,mike #这里rsb这个是没有的用户,也可以是存在的用户 修改后执行newaliases #不执行发送的时候会拒绝这个收件人 启动pop3 这个最简单,直接安装dovecot,然后service dovecot start 就可以了,什么都不用设置。 OpenWebMail安装(web方式的邮件收发) 安装的包,这里要注意版本,(这里列出的是对应RHEL5.2的)有时候版本不对的话实验做不出来的,找版本是经验问题啦。 openwebmail-2.53-3.i386.rpm openwebmail-data-2.53-3.i386.rpm perl-CGI-SpeedyCGI-2.22-1.2.el5.rf.i386.rpm perl-Text-Iconv-1.7-2.el5.i386.rpm perl-suidperl 安装后会在默认网站目录下(/var/www/html)建立cgi-bin目录,所有的文件就是放在这个里面 执行初始化: /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init 浏览器登录:http://192.168.0.1/cgi-bin/openwebmail/openwebmail.pl 不过这样太难记,可以做个链接,前面讲APACHE个人网站的时候说过软连接,是通过 ln -s /home/redhat/public_html /var/www/html/redhat,现在可以直接在httpd.conf加入一个别名来简化访问 vim /etc/httpd/conf/httpd.conf …… ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /mail "/var/www/cgi-bin/openwebmail/openwebmail.pl" …… 这样直接输入http://192.168.0.1/mail就可以访问了
access domaintable.db mailertable sendmail.cf submit.cf trusted-users access.db helpfile mailertable.db sendmail.cf.bak submit.cf.bak virtusertable domaintable local-host-names Makefile sendmail.mc submit.mc virtusertable.db 首先修改local-host-names vim local-host-names # local-host-names - include all aliases for your machine here.
mail.test.com #让sendmail知道哪些邮件属于本地域的邮件,这里添加了@mail.test.com
test.com #和@test.com,凡是邮件后缀是这2个的都认为是本地邮件。 (这个东西就是决定邮件后缀的啦) 修改配置文件sendmail.mc #这个只是比较易懂的配置文件,修改以后必须用m4生成sendmail.mc才生效
首先先来修改服务器smtp的监听范围,就是来自哪个地方的邮件sendmail会帮他发送。默认是监听本机的,所以在客户端发邮件不成功。 修改之前我们应该备份一下配置文件,以免修改乱了还可以还原回来。 cp -avp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.bak cp -avp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak 修改的地方: 112 dnl # The following causes sendmail to only listen on the IPv4 loopback address
113 dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
114 dnl # address restriction to accept email from the internet or intranet.
115 dnl #
116 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 将Addr=127.0.0.1改为0.0.0.0即可 m4 sendmail.mc > sendmail.cf service sendmail restart #如果启动很慢,vim /etc/hosts文件,加入 #192.168.x.x mail.test.com Server(DNS里面 设置的也加进来) 重点:192.168.0.1 mail.test.com Server中,完全合格域名mail.test.com要写在前面,如果不写或者写在后面,主机会先去查找后面Server的IP,一直找一直找,这就是为什么通过SMTP发信的时候超级慢得原因,如果先查找文件中的Server,这个在DNS里面没有注册,会尝试查找很久,一直找不到,才会找后面的完全合格域名。 邮件发送 现在默认本地用户就可以发信了,还不能用pop收信,要安装dovecot这个组件才能启用pop3收信。 那么往外域发送邮件呢?下面就来进行邮件中继的设置 2台电脑之间发生的邮件收发不会产生中继,只是涉及到smtp。(包括2个MTA之间)涉及到3台电脑的就会有中继发生,最常见的就是内部用户通过本地的邮件服务器外发给外域的用户。 有2个方法实现邮件中继: 1、修改/etc/mail/access文件, # Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY (默认只对本机发送的邮件中继,在下面添加中继) 192.168.2 RELAY #192.168.2.0/24网段可以中继 2、启用smtp身份认证,凡是属于我服务器的合法用户都中继 修改/etc/mail/sendmail.mc …… 50 dnl # Please remember that saslauthd needs to be running for AUTH.
51 dnl #
52 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl …… 红色2行就是和smtp认证有关的,取消前面的dnl注释,不要留空格,就开启了smtp认证功能。 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf service sendmail restart service saslauthd restart #和认证相关的服务,不开这个就启用不了smtp身份认证。 开启认证以后客户端的MUA要在服务器一项上设置我的smtp服务器需要身份验证,但是如果是第一种方法就不需要了。 邮件别名:可以定义一个或多个用户的别名,发送的时候收件人为设定的别名就可以了 修改/etc/aliases #启用转发,发给某个用户的邮件自动转发到指定的另外一个用户 # Person who should get root's mail
#root: marc rsb: tom,mike #这里rsb这个是没有的用户,也可以是存在的用户 修改后执行newaliases #不执行发送的时候会拒绝这个收件人 启动pop3 这个最简单,直接安装dovecot,然后service dovecot start 就可以了,什么都不用设置。 OpenWebMail安装(web方式的邮件收发) 安装的包,这里要注意版本,(这里列出的是对应RHEL5.2的)有时候版本不对的话实验做不出来的,找版本是经验问题啦。 openwebmail-2.53-3.i386.rpm openwebmail-data-2.53-3.i386.rpm perl-CGI-SpeedyCGI-2.22-1.2.el5.rf.i386.rpm perl-Text-Iconv-1.7-2.el5.i386.rpm perl-suidperl 安装后会在默认网站目录下(/var/www/html)建立cgi-bin目录,所有的文件就是放在这个里面 执行初始化: /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init 浏览器登录:http://192.168.0.1/cgi-bin/openwebmail/openwebmail.pl 不过这样太难记,可以做个链接,前面讲APACHE个人网站的时候说过软连接,是通过 ln -s /home/redhat/public_html /var/www/html/redhat,现在可以直接在httpd.conf加入一个别名来简化访问 vim /etc/httpd/conf/httpd.conf …… ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /mail "/var/www/cgi-bin/openwebmail/openwebmail.pl" …… 这样直接输入http://192.168.0.1/mail就可以访问了
相关阅读 更多 +