分享

配置Sendmail

 农夫子oice 2007-06-13

配置Sendmail

Wikipedia,自由的百科全书

目录 [隐藏]

要生成sendmail.cf文件

一般是编译sendmail.mc来生成sendmail.cf,这样的好处是通过编译,会查看出一些sendmail的设置错误和漏洞。

# cd /etc/mail
# vi sendmail.mc

(1)找到:

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl

打开注解,启用相应的认证机制,主要是为了支持Outlook。

(2)找到:

define(`confAUTH_MECHANISMS‘, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl

打开注解,启用相应的认证机制,主要是为了支持Outlook。

(3)在(2)后添加两行:

DAEMON_OPTIONS(`Port=25,Name=MTA‘)dnl
DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea‘)dnl

设置MTA和MSA端口。

(4)找到:

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA‘)

将该行注释掉,以允许通过网络连接Sendmail。

(5)找到:

dnl FEATURE(`accept_unresolvable_domains‘)

禁止不可解析域名的转发邮件。

最后保存退出。

编译sendmail.mc生成sendmail.cf文件

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# /etc/rc.d/init.d/sendmail restart --重起sendmail服务。

如果在执行m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 报错的话,那么检查是否安装sendmail-cf.*.rpm是否安装:

# rpm -qa | grep sendmail-cf

如果没有安装,则需要在安装光盘中找到sendmail-cf包,并安装:

# rpm -ivh sendmail-cf*.rpm

检测编译结果

1、检测SASL被编译到sendmail中。

#/usr/sbin/sendmail -d0.1 -bv root |grep SASL

输出类似如下:

NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS

保证你看到SASL就是正确的。

2、检测25端口:

# telnet localhost 25

Trying 127.0.0.1... Connected to localhost. Escape character is ‘^]‘. 220 fyhtest.163.net ESMTP Sendmail 8.12.5/8.12.5; Thu, 10 Apr 2003 16:35:42 -0400 ehlo test 250-fyhtest.163.net Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-DELIVERBY 250 HELP
quit ---退出

只要输出有LOGIN PLAIN就可以了。

到这里,sendmail就配置完了,你可以添加一个用户进行测试:

#useradd test
#passwd test 设置密码

把你服务器的域名添加到/etc/mail/local-host-names中。

其他设置

要想更好的使用sendmail,常用到的一些设置:

1、限制最大邮件。

# vi /etc/sendmail.cf
# maximum message size
MaxMessageSize=5000000 (注:5M)

2、最大的群发数目。

# vi /etc/sendmail.cf
# maximum number of recipients per SMTP envelope
MaxRecipientsPerMessage=20 (注:20个)

3、域名文件----local-host-name 可以用他来实现虚拟域名或多域名支持。

# vi /etc/mail/local-host-name
test.com
test1.com

4、mail别名文件--aliases。

# vi /etc/aliases
系统内部别名:discuz:bbsadmin
discuz是我的用户名,其他的是别名,用逗号隔开。
转发到其他的邮箱:discuz:bbsadmin@discuz.com
# newaliases --写到库中

5、邮件控制文件

relay、ok、reject和discard。

relay: 可以实现转发。

ok: 是用来允许用户的任意访问,它会覆盖任何其它已建立的检查(实际设置中,最好不要设为这项,除非你对该用户是绝对信任的);

reject: 可以实现对来访地址的拒绝,它根本就不容许该地址与你的邮件服务器进行连接通信;

discard: 的作用是在接收到传输的邮件消息后,把它丢弃掉。在发送者看来,他的邮件的确是接收了,但他并不知道,发送的目的地址根本不可能接收到他的邮件,服务器巧妙地欺骗了他。

# vi /etc/mail/access

localhost.localdomain RELAY ---允许 localhost RELAY 127.0.0.1 RELAY peng@sina.com ok @sexgirl.net reject 211.77.22.45 discard
# makemap hash access < access --写到库中

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多