一直也没有用过redhat 8.0,好多网友都说他的sendmail配置有点问题。今天终于安装了一次redhat 8,感觉还可以。
我也配置了一下,要是简单配置,和redhat7.2没什么太大区别。当然了,我是说他的最简单配置。
redhat8默认安装的是sendmail8.12.5.
我的系统安装时,选择的是custom,sendmail默认安装。
设置你的nds server,我的域名是webmail.readchina.com
添加一条MX纪录@ IN MX 10 webmail.readchina.com.
安装完系统后,我通过x-windowns看到系统设置--mail transport agent switcher,默认是postfix,我选着了sendmail作为邮件传输代理。
开始安装:
一、首先,要生成sendmail.cf文件,一般是编译sendmail.mc来生成sendmail.cf,这样的好处是通过编译,会查看出一些sendmail的设置错误和漏洞。
# cd /etc/mail
# vi sendmail.mc
divert(-1)
dnl This is the sendmail macro config file. If you make changes to this file,
dnl you need the sendmail-cf rpm installed and then have to generate a
dnl new /etc/mail/sendmail.cf by running the following command:
dnl
dnl m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
OSTYPE(`linux')
dnl Uncomment and edit the following line if your mail needs to be sent out
dnl through an external mail server:
dnl define(`SMART_HOST',`smtp.your.provider')
define(`confDEF_USER_ID',``8:12'')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=25,Name=MTA')dnl
DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea')dnl
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_IDENT', `0')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl The '-t' option will retry delivery if e.g. the user runs over his quota.
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl This changes sendmail to only listen on the loopback device 127.0.0.1
dnl and not on any other .network devices. Comment this out if you want
dnl to accept email over the network.
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl a kernel patch
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
Cwlocalhost.localdomain
其中:
1、2是我打开注解的,是打开相应的认证机制,主要是为了支持outlook
3、4是我添加的,设置相应的mta and msa的所用端口。
5、6要注掉。
1、TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
2、define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
3、DAEMON_OPTIONS(`Port=25,Name=MTA')dnl
4、DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea')dnl
5、dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
6、dnl FEATURE(`accept_unresolvable_domains')dnl
最后保存。
二、编译sendmail.mc 生成sendmail.cf文件
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
#/etc/rc.d/init.d/sendmail restart --重起sendmail服务。
三、检测编译结果。
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 (127.0.0.1).
Escape character is '^]'.
220 webmail.readchina.com ESMTP SENDMAIL 8.12.5/8.12.5;THU,13 FEB 2003.19:12:59 +0800
EHLO localhost --打个招呼
250-webmail.readchina.com hello localhost [127.0.0.1],pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI LOGIN PLAIN
250-DELIVERBY
250-HELP
quit ---退出
只要输出有LOGIN PLAIN就OK!了,不然,就不能relay mail.
到这里,sendmail就配置完了,你可以天天加一个用户试试看。
邮件用户是系统用户.
#useradd -d /home peng peng
#passwd peng ----设置密码
设置你的foxmail or outlook,要设置上用户需要smtp认证。
有的网友说,必须把你的域名添加到/etc/mail/local-host-names中,我没有添加,也可以发送。我英
为是在局域网中测试,发信没问题,不知道收信有没有问题。你最好加上吧。当你要支持虚拟域时,必
须都要加上的。
四、pop3安装。
redhat8.0中有它的rpm包,是imap-2001a.15.rpm
# rpm -ivh imap-2001a.rpm
#/etc/xinetd.d/ipop3
disable =no
#/etc/rc.d/init.d/xinetd restart --重起pop3服务
#telnet localhost 110
Trying 127.0.0.1...
Connected to localhost (127.0.0.1)
Escape character is '^]'
+OK POP3 localhost v2001.78rh server ready
quit ---退出
有以上显示,为正确。
五、其他设置。
要想更好的使用sendmail,常用到的一些设置:
1、限制最大邮件。
vi /etc/sendmail.cf
# maximum message size
O MaxMessageSize=5000000 (注:5M)
2、最大的群发数目。
vi /etc/sendmail.cf
# maximum number of recipients per SMTP envelope
O MaxRecipientsPerMessage=20 (注:20个)
3、域名文件----local-host-name
可以用他来实现虚拟域名或多域名支持。
/etc/mail/local-host-name
v1mail.com
v2mail.com
.......
4、mail别名文件--aliases。
vi /etc/aliases
系统内部别名:peng:zpeng,hero,mmmn,yt peng是我的用户名,其他的是别名,用逗号隔开。
转发到其他的邮箱:peng:zpeng@sina.com,yt.sohu.com
#newaliases --写到库中
5、邮件控制文件--access
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.db < access --写道库中
6、虚拟用户文件---virtusertable.
这个文件可以mail重名问题。
例如:你有两个域名,virt1.com and virt2.com,但是都有peng这个用户:
peng@virt1.com and peng@virt2.com,这是两个用户。但对于系统用户来说,他只认系统用户peng,只能通过一下改:
vi /etc/mail/virtusertable
peng@virt2.com r010
这样就可以了。在新开一个用户r010,但是peng@virt2.com在客户端的pop3 and smtp server的用户名和口令要用r010的。
#makemap hask virtusertable.db < virtusertable
sendmail.cf and /etc/mail/*的一些设置和用途,明天再写吧,已经下班了,我要回家看《足球之夜了》了。:)
bingbing 回复于:2003-02-17 13:12:41 |
嘻嘻,鼓励一下了^_^ |
akie 回复于:2003-02-28 03:28:28 |
用telnet 主机名(域名) 25 测试行吗? |
akie 回复于:2003-02-28 03:28:43 |
用telnet 主机名(域名) 25 测试行吗? |
peng 回复于:2003-02-28 09:27:35 |
可以啊,但首先是做好dns解析。 |
oceanb0y 回复于:2003-03-01 15:30:02 |
也是SASL+SENDMAIL
按照你的步筑 到这里时 [root@fbing root]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 localhost.localdomain ESMTP Sendmail 8.11.6/8.11.6; Fri, 28 Feb 2003 06:02:34 -0500 ehlo localhost 250-localhost.localdomain Hello fbing [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-SIZE 50000 250-DSN 250-ONEX 250-ETRN 250-XUSR 250-AUTH LOGIN PLAIN 250 HELP 我还以为是肯定成功了,我随后试了一下, 发现原来smtp server reply 500 5.7.0 authentication failed 还有我的是这个: [root@fbing root]# /usr/sbin/sendmail -d0.1 -bv root |grep SASL NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS QUEUE SASL SCANF 真的是搞不懂了啊,昏倒@@ |
lugyin 回复于:2003-03-13 17:28:28 |
遇到了同样的问题,晕啊
是不是pwcheck时,还有什么问题吗? |
peng 回复于:2003-03-14 13:58:30 |
to oceanb0y and lugyin :你用的什么收发信啊?是outlook or foxmail吗?
你要在你的客户端软件上启用smtp 认证选项啊! 你们选上了吗? |
lugyin 回复于:2003-03-14 17:06:28 |
感谢peng兄
我的问题已经找到了是/usr/lib/sasl/Sendmail.conf的文件名中的S没有大写,问题已经解决 |
tony_list 回复于:2003-04-06 10:26:48 |
我是在redhat8.0下编译Sednmail,按你的方法作的,设置好了后,当编译sendmail.m4文件时,
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf 却提示: NONE:0: m4 : ERROR: EOF or staring 请问是不是编译的问题?应该如何解决? 先谢了,又哪位仁兄知道的话,还请尽快回复一下,解决不了,我吃不下饭,睡不着觉。 |
ilovewalk 回复于:2003-04-07 00:08:02 |
我以前也遇到过你这种问题,是不是你的sendmail.mc文件没有配置对落,以前我左右引号没有写对,就会报这种错,你再看看sendmail.mc文件吧!!! |
tony_list 回复于:2003-04-07 09:25:38 |
就是这个问题,谢谢你呀,ilovewalk兄。 |
dongzzd 回复于:2003-04-07 21:42:26 |
问一下楼上的朋友,我在用m4 sendmail.mc > senmail.cf 时提示我没这个命令.我是个初学者,请大哥指教,我应该再安装个什么软件包,才能使用这个命令谢谢! |
peng 回复于:2003-04-08 11:54:22 |
[quote:34a87ef665="dongzzd"]问一下楼上的朋友,我在用m4 sendmail.mc > senmail.cf 时提示我没这个命令.我是个初学者,请大哥指教,我应该再安装个什么软件包,才能使用这个命令谢谢![/quote:34a87ef665]
你没有安装sendmail-cf.*.rpm文件,光盘上有。 |
jfcat 回复于:2003-04-25 17:49:07 |
感谢 peng ,又学到一手
一切成功,就是从sina.com发过来的收不到 痛!!!!!!!!!!!!!! |
haitao431 回复于:2003-04-29 09:54:45 |
我刚学习邮件服务器的配置 按照各位老师的方法 可以向外发邮件
我给 163,sohu发了都可以正常接收,但我遇到了一个大问题 每次重启后我原先的配置都失效了需要重新编译,然后重启endmail服务 然后就又可以了不知为什么 请各位大虾指导 谢谢 |
peng 回复于:2003-05-01 21:35:12 |
不应该阿,是不是你的机器有问题阿? |
a791223 回复于:2003-09-18 20:58:36 |
为什么我的外发邮件时可以发出去但是很快又弹回来提示如下错误
The original message was received at Thu, 18 Sep 2003 17:40:50 +0800 from [192.168.0.45] ----- The following addresses had permanent fatal errors ----- <it@hoau.net> (reason: 553 5.3.5 system config error) ----- Transcript of session follows ----- 553 5.3.5 mail.hoau.net. config error: mail loops back to me (MX problem?) 554 5.3.5 Local configuration error 451 4.0.0 hash map "Alias0": unsafe map file /etc/aliases.db: Permission denied |
hk007 回复于:2004-04-27 22:07:59 |
彭大侠:
我按照您的帖子做了设置,我的环境是RedHat9.0的,经过测试: $ telnet localhost 25 ........ 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH GSSAPI LOGIN PLAIN 250-DELIVERBY 250-HELP 测试结果和您所描述的完全一样,收发邮件也正常。但是认证的功能就是不起作用。我在Outlook Express的服务器配置中选中我的服务器需要认证,sendmail服务器就认证,不选该选项的话sendmail就不加认证也照样转发邮件。我试过从一台其他的机器上telnet到sendmail服务器的25端口,直接用命令行发送邮件,而且用的用户是sendmail服务器上根本没有的帐户,它也给我转发了,就是不报错。我在日志文件/var/log/maillog中也没有看到任何有关认证的信息,也没有错误信息。看sendmail官方网站上说可以调整sendmail的日志级别LogLevel,但是不知道如何操作。 # sendmail -LogLevel=13好像有问题。 急切盼望您的建议。 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/
领测软件测试网最新更新
关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073