Linux下sendmail 的配置

运维 系统运维
如何配置Linux下sendmail呢?本文主要基于redhat 8.0.的配置。

  用redhat 8.0自带的sendmail+sasl配置需要认证的邮件服务器,以及把sendmail8.12.5升级到sendmail.8.12.9

  redhat8默认安装的是sendmail 8.12.5.

  系统安装时,选择的是custom,sendmail默认安装。

一、首先,要生成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

  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')

  其中:

  1、2是打开注解的,是打开相应的认证机制,主要是为了支持outlook

  3、4是添加的,设置相应的mta and msa的所用端口。

  5、6要注掉。 5允许通过网络连接Sendmail,6 禁止不可解析的域名relay邮件

  最后保存。

二、编译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,redhat8.0自带的是

  sendmail-cf-8.12.5-7.i386.rpm,在安装盘的第3张,安装方法:# rpm -ivh sendmail-cf-8.12.5-7.i386.rpm

三、检测编译结果

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

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

  输出类似如下:

  NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS

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

  2、检测25端口:

  

  1. [root@fyhtest mail]# telnet localhost 25  
  2.  
  3.   Trying 127.0.0.1...  
  4.  
  5.   Connected to localhost.  
  6.  
  7.   Escape character is '^]'.  
  8.  
  9.   220 fyhtest.163.net ESMTP Sendmail 8.12.5/8.12.5; Thu, 10 Apr 2003 16:35:42 -0400  
  10.  
  11.   ehlo test  
  12.  
  13.   250-fyhtest.163.net Hello localhost [127.0.0.1], pleased to meet you  
  14.  
  15.   250-ENHANCEDSTATUSCODES  
  16.  
  17.   250-PIPELINING  
  18.  
  19.   250-8BITMIME  
  20.  
  21.   250-SIZE  
  22.  
  23.   250-DSN  
  24.  
  25.   250-ETRN  
  26.  
  27.   250-AUTH LOGIN PLAIN  
  28.  
  29.   250-DELIVERBY  
  30.  
  31.   250 HELP

  只要输出有LOGIN PLAIN就OK!了,不然,就不能relay mail.

  到这里,sendmail就配置完了,你可以天天加一个用户试试看。

  邮件用户是系统用户.

  #useradd test

  #passwd test ----设置密码

  设置你的foxmail or outlook,要设置上用户需要smtp认证。

  把你的域名添加到/etc/mail/local-host-names中.

#p#

四、pop3安装。

  1.   redhat8.0中有它的rpm包,是imap-2001a-15.i386.rpm  
  2.  
  3.   # rpm -ivh imap-2001a-15.i386.rpm  
  4.  
  5.   修改/etc/xinetd.d/ipop3  
  6.  
  7.   把其中disable =yes更改为disable =no 
  8.  
  9.   修改/etc/xinetd.d/imap  
  10.  
  11.   把其中disable =yes更改为disable =no 
  12.  
  13.   # /etc/rc.d/init.d/xinetd restart --重起pop3服务  
  14.  
  15.   [root@fyhtest xinetd.d]# telnet localhost 110  
  16.  
  17.   Trying 127.0.0.1...  
  18.  
  19.   Connected to localhost.  
  20.  
  21.   Escape character is '^]'.  
  22.  
  23.   +OK POP3 localhost v2001.78rh server ready  
  24.  
  25.   [root@fyhtest xinetd.d]# telnet localhost 143  
  26.  
  27.   Trying 127.0.0.1...  
  28.  
  29.   Connected to localhost.  
  30.  
  31.   Escape character is '^]'.  
  32.  
  33.   * OK [CAPABILITY IMAP4REV1 LOGIN-REFERRALS STARTTLS AUTH=LOGIN] localhost IMAP4rev1 2001.315rh at Thu, 10 Apr 2003 16:41:06  
  34.  
  35.   -0400 (EDT) 

  有以上显示,为正确。

五、其他设置

  要想更好的使用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

  test.com

  test1.com

  4、mail别名文件--aliases。

  vi /etc/aliases

  系统内部别名:test:fangyh test是我的用户名,其他的是别名,用逗号隔开。

  转发到其他的邮箱:test:test@sina.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 < access --写到库中

  6、虚拟用户文件---virtusertable.

  这个文件可以mail重名问题。

  例如:你有两个域名,virt1.com and virt2.com,但是都有test这个用户:

  test@virt1.com 和 test@virt2.com,这是两个用户。但对于系统用户来说,他只认系统用户test,只能通过一下改:

  1.   vi /etc/mail/virtusertable 

  test@virt2.com r010

  这样就可以了。在新开一个用户r010,但是test@virt2.com在客户端的pop3 and smtp server的用户名和口令要用r010的。

  

  1. # makemap hask virtusertable.db < virtusertable 

【编辑推荐】

  1. Sendmail 配置具体命令详解
  2. Sendmail 配置的使用说明
  3. Sendmail防御DOS攻击手册
  4. sendmail的安装
  5. sendmail下设定邮箱大小
  6. Sendmail 配置下载及安装
  7. Sendmail 配置E-Mail服务器

 

责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-01-18 14:24:03

Linuxsendmail配置

2011-01-21 09:09:22

Sendmail

2011-01-21 09:32:57

LinuxSendmail

2011-02-21 14:59:50

Linuxsendmail安装

2010-05-25 15:43:07

Sendmail配置

2010-06-07 10:01:26

Linux sendm

2010-06-07 09:47:34

php sendmai

2010-05-25 16:03:18

sendmail配置

2010-06-02 16:31:28

Linux sendm

2010-06-02 16:10:04

php sendmai

2010-06-11 17:04:45

php sendmai

2010-06-03 13:44:35

Sendmail配置

2010-06-03 13:56:54

Sendmail 配置

2009-08-14 13:30:44

配置linux虚拟机s

2010-06-03 13:49:04

Sendmail 配置

2011-01-21 09:54:44

LinuxSendmail

2011-01-21 15:40:56

Sendmail

2011-01-19 10:57:54

sendmail配置

2011-01-21 10:10:22

2011-01-21 15:27:10

Sendmail
点赞
收藏

51CTO技术栈公众号