Postfix替代sendmail发送邮件

基础知识
    MUA: Mail User Agent(邮件用户代理),例如:mutt、elm、Pine、Outlook、Foxmail
    MUA的任务:

    MAA: Mail Access Agent(邮件访问代理),可以算是MTA的一个子系统。

    MTA: Mail Transfer Agent(邮件传输代理),例如:Sendmail、qmail、postfix
    MTA的任务:

    MDA:Mail Delivery Agent(邮件投递代理)
    MDA的任务:

    用于传递信息的标准协议:
    SMTP:Simple Mail Transfer Protocol(简单邮件传输协议,RFC 2821)

    用于接收的协议:
    POP:Post Office Protocol(邮局协议,RFC 1939)
    POP3:
    IMAP: Internet Message Access Protocol(交互邮件访问协议,RFC 2060)

    注:RFC即Request For Comments的缩写,IETF(Internet Engineering Task Force)维护各种各样标准与协议规范的一种方式。

一、关闭sendmail

   关闭已经运行的MTA软件,linux默认安装了sendmail,所以需要先使用下列命令停止:
   # killall sendmail (停止所有的Sendmail进程)
   或者
   # service sendmail stop
   # chkconfig sendmail off  (关闭sendmail 开机的启动)
   # chkconfig --list         (查看下自动启动的程序)
   
   卸载sendmail
   # rpm -e sendmail --nodeps

二、安装postfix

   # yum install postfix
   
   # newaliases (生成别名二进制文件,这个步骤如果忽略,会造成postfix效率极低)
   
   更改配置文件(/etc/postfix/main.cf)中的参数
   # postconf -e myhostname=mail.df3c.com
   # postconf -e myorigin=df3c.com
   # postconf -e mydomain=df3c.com
   # postconf -e mydestination=localhost
   # postconf -e mynetworks=127.0.0.0/8

   这几个参数主要是控制,邮件发送和接受的默认值。

   参数具体含义,可以参考:《Postfix权威指南》

   启动停止及启用更新的参数
   # postfix start
   # postfix stop
   # postfix reload
   
   日志文件
   # more /var/log/maillog
   或者
   # cat /var/log/maillog

   注:每次重启或更新postfix的参数后,注意查看日志,确实是否正常。

 

   测试:

   # telnet localhost 25

ehlo mail
mail from:server#df3c.com
rcpt to:[email protected]
data
This is a test mail.
.
quit
 

三、相关问题

   1、网络监听的问题
   # postconf inet_interfaces = all
   inet_interfaces为all表示所有IP,localhost则为127.0.0.1
  
   如果只是用Postfix代替sendmail发送邮件,而不接收邮件的话,可以将inet_interfaces的值设为localhost。
   这样将大大增加服务器的安全。
  
   2、防垃圾邮件(spamhaus)联盟,造成(国外、sina等)邮箱无法收信
   访问http://www.spamhaus.org/lookup.lasso,输入IP地址查找是否在垃圾邮件列表中。
   在的话,可以申请删除,具体步骤可以参考:
   http://www.ff-bb.cn/logs/74631918.html

   3、给gmail发邮件,报类似如下错误:
   host gmail-smtp-in.l.google.com[209.85.147.27] said:550-5.7.1 [220.135.57.87] The IP you're using to send email is not authorized 550-5.7.1 to send email directly to our servers. Please use 550 5.7.1 the SMTP relay at your service provider instead. j21si8542316wah (in reply to end of DATA command)
  
   将/etc/postfix/main.cf中的mydestination参数做如下调整:
   mydestination = $myhostname,localhost.$mydomain,localhost,$mydomain,mail.$mydomain,www.$mydomain
   改为
   mydestination = localhost,localhost.$mydomain,$myhostname,$mydomain,mail.$mydomain,www.$mydomain
   将localhost排前面。

   4、给gmail,yahoo等发邮件被退回
   邮件退回的大多原因,是该邮件服务器域名没做MX反向解析。
   邮箱域名解析设置及MX设置,参加:

   企业邮箱域名解析设置方法
   http://www.net.cn/service/faq/yuming/url/201009/4423.html
   域名MX解析设置方法及其功能
   http://www.net.cn/service/faq/yuming/url/200803/3104.html

 

 

你可能感兴趣的:(sendmail)