sendmail做smtp SERVER

sendmail所需包只需两个
[root@localhost etc]# rpm -qa | grep sendmail
sendmail-cf-8.13.4-2
sendmail-8.13.4-2

  
    安装sendmail做smtp SERVER
  •     步骤一。Sendmail前先做DNS 配置
定义主域名
[root@localhost etc]# cat /etc/named.conf
zone "macg.com" IN {
        type master;
        file "macg.zone";
        allow-update { none; };
};
定义alias
[root@localhost mail]# vi /var/named/macg.zone

$TTL    86400
@               IN SOA  @       root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D );

@ IN NS         192.168.1.12;
  IN A          192.168.1.12;
www IN A 192.168.1.12;
test IN A 192.168.1.12;
ftp IN A 192.168.1.12;   
pop3 IN A 192.168.1.12;
smtp IN A 192.168.1.12
  •     步骤二。sendmail.cf修改
使本地和异地foxmail都能发mail
必须改成实际域名,否则虽然 linux本地能发mail,但一些客户端(如foxmail)无法通过sendmail发mail

C{w}localhost localdomain
改成
C{w}localhost    macg.com  smtp.macg.com 

                    主域名      email(smtp)服务器域名
# SMTP client options
#O ClientPortOptions=Family=inet, Address=0.0.0.0
client address不必改,就保持缺省的#
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA    
Addr只能是0.0.0.0
  •     步骤三。linux smtp服务启动
[root@localhost mail]# /etc/init.d/sendmail restart
Shutting down sendmail: [  OK  ]
Shutting down sm-client: [  OK  ]
Starting sendmail: [  OK  ]
Starting sm-client: [  OK  ]   sendmail daemon启动同时也启动了client
  •    步骤四。email客户端PC配置
1. PC  DNS指向上面的DNS SERVER
2. pop3 帐户就是unix 普通用户
pop3 account:mac
pop3 password:xxxxxx
3. foxmail 建立帐户
帐户mac@macg.com
SMTP SERVER :smtp.macg.com
POP3 SERVER :pop3.macg.com



     /etc/mail/access不必做任何修改
[root@localhost mail]# vi access
localhost.localdomain           RELAY
localhost                       RELAY
127.0.0.1                       RELAY
macg.com                        RELAY
smtp.macg.com                   RELAY
192.168.1          RELAY
删掉了192.168.1          RELAY

FOXMAIL仍能发mail
本机也能发mail给本机帐户
删掉macg.com                        RELAY
删掉smtp.macg.com                   RELAY

FOXMAIL仍能发mail
本机也能发mail给本机帐户
总之,/etc/mail/access不必做任何修改
注意修/etc/mail/改access,完后都要做两步:
[root@localhost mail]# makemap hash /etc/mail/access.db < /etc/mail/access
[root@localhost mail]# /etc/init.d/sendmail restart

    local-host-names不必做任何修改
[root@localhost mail]# cat local-host-names
# local-host-names - include all aliases for your machine here.
FOXMAIL仍能发mail
本机也能发mail给本机帐户





    sendmail.cf是sendmail的主配置文件
    早期sendmail.cf是放在/etc下
            RH9是放在/etc/mail下
    在src/sendmail.8.9.3/cf目录下还有许多适应各种系统的sendmail.cf的文件样本


    两种sendmail.cf配置方法
  •  直接修改 /etc/mail/sendmail.cf文件来配置sendmail的
  •  mc生成法:配置sendmail.mc文件,生成sendmail.cf
只是在做身份验证的时候才使用sendmail.mc文件
vi /etc/mail/sendmial.mc
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 


    sendmail.cf 下的DaemonPortOptions=Port=smtp,Addr的设法
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA   

此时可以在本地给本机发mail
但在其他PC无法用foxmail通过 sendmail发邮件
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=192.168.1.12, Name=MTA

此时linux本地无法通过mail指令发mail给本机用户
但可以在其他PC用foxmail 通过sendmail 发邮件
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA   

最佳办法
既可以在本地给本机发mail
也可以在PC用foxmail发


    mail troubleshooting
  • 能发信不能收信
    sendmail 通,pop3(dovecot)没通
  • 能本地发信给本地帐户,但不能通过异地客户端(foxmail)发信的 
  sendmail.cf中 option address 设成127.0.0.1了,改成0.0.0.0
  • 能通过异地客户端(foxmail)发信的,而不能本地发信给本地帐户   
  sendmail.cf中 option address 设成具体地址了,改成0.0.0.0
  • 也可能出现foxmail可以发信给SERVER的另一个帐户,实际仍属于server本地发信,但无法发信给一个mail server的帐户  
 foxmail 的smtp server 要设“authentication "---"use same account and password as pop3"


   其他 配置文件
[root@localhost macg]# ls /etc/mail
access     domaintable     helpfile          mailertable     Makefile     sendmail.mc   submit.cf  trusted-users  virtusertable.db
access.db  domaintable.db  local-host-names  mailertable.db  sendmail.cf  spamassassin  submit.mc  virtusertable
[root@localhost mail]# cat  local-host-names
# local-host-names - include all aliases for your machine here
[root@localhost mail]# cat trusted-users
# trusted-users - users that can send mail as others without a warning
# apache, mailman, majordomo, uucp, are good candidates
[root@localhost mail]# cat 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...
localhost.localdomain           RELAY
localhost                       RELAY
127.0.0.1                       RELAY
192.168.1                    RELAY


      sendmail log在哪里看?
[root@localhost mail]# cat /var/log/maillog
May  7 18:01:55 localhost pop3-login: Login: macg [::ffff:192.168.1.11]

May  7 18:05:08 localhost sendmail[6566]: l47A48Iq006566: from=<macg@192.168.1.12>, size=328, class=0, nrcpts=1, msgid=<200705071005.l47A48Iq006566@localhost.localdomain>, proto=SMTP, daemon=MTA, relay=[192.168.1.11]
May  7 18:05:08 localhost sendmail[6566]: l47A48Iq006566: to=<macg@192.168.1.12>, delay=00:00:00, mailer=esmtp, pri=30328, dsn=4.4.3, stat=queued

分享到