网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 邮件系统软件 > Qmail
本月文章推荐
.使用Postfix系统做外发SMTP服务器.
.利用 FreeBSD 组建轻量级邮件系统.
.postfix邮件服务器安全策略.
.在DEBIAN 下安装POSTFIX 邮件系统.
.qmail Vpopmail And sqwebmail H.
.Postfix邮件系统安装手册.
.debian的postfix Hosting Multip.
.基于数据库的虚拟域邮件系统的构.
.Postfix + Cyrus-SASL + Cyrus-I.
.Qmail下如何将某个域下的账号邮件.
.Solaris 8 启动时,sendmail 报错.
.Qmail域名相关问题三.
.SendMail上手指南.
.基于Sendmail和Perl的邮件附件过.
.Linux架设E-mail服务器.
.relay规则及配置文件用法汇总.
.Sendmail中实现用户磁盘配额的实.
.ExtMail Solution HOWTO for Lin.
.Sendmail的邮件用户与系统用户分.
.简易安装postfix邮件服务器.

使用Postfix系统做外发SMTP服务器的问题

发表日期:2006-12-3


目的: 搭建单独的SMTP外发服务器,从正常的邮件服务器中独立出来
  要求:关闭Openrelay,没有经过身份验证不能使用smtp服务器发送邮件(本域也免谈)
  状态: 以前工作进展程度,SMTP+身份验证正常工作,没有身份验证不能发送邮件给域内或域外用户。(通过把$mydestination $relay_domains设置成空实现的),存在问题,当用户发送给本域用户时,无法立即发现用户是否实际存在。需要等待一段时间后才能收到smtp的退信。
  
  改进要求: 如果用户发邮件给本域不存在用户,系统立即提示用户不存在,且不通过验证不能发送邮件给任何人,包括域内用户。

  改进方法:
  
  增加relay_recipient_maps,但是这个工作需要依赖于relay_domains,对于邮件系统的默认配置,如果存在 relay_domains,那么系统将会自动接受relay_domains的邮件,无论用户是否提供身份验证信息。
  
  修改方法:
  因为我的系统使用了mysql,FC4默认的postfix还不支持postfix,所以要重新编译,在互联网上逛,发现这个编译方法很方便,延续了我系统使用rpm包的习惯:
  rpm -ivh postfix-2.1.6-1.src.rpm
  
  cd /usr/src/redhat/SOURCES
  
  bash
  
  export POSTFIX_MYSQL_REDHAT=1
  export POSTFIX_SASL=2
  export POSTFIX_TLS=1
  
  sh make-postfix.spec
  
  exit
  
  cd /usr/src/redhat/SPECS
  
  rpmbuild -ba postfix.spec
  
  cd /usr/src/redhat/RPMS/i386
  这样就搞定了,呵呵
  
  在/etc/postfix/main.cf中增加:
  

==============
relay_domains = mysql:/etc/postfix/mysql-relay.cf
  relay_recipient_maps = mysql:/etc/postfix/mysql-user.cf, mysql:/etc/postfix/mysql-virtual.cf
  
==============
  上面两行关于mysql的配置,根据系统的不同,略有不同, mysql-relay.cf主要是查找 那些域名是属于 域内的(发往自己邮件服务器的)
  
mysql-user.cf mysql-virtual.cf 这两个文件是user表,其实就是 自己邮件服务器上的所有邮件地址列表。

  修改:
  
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient, reject
  
最后增加一个 reject,我找了好久,最后发现增加一个 reject 就实现我的要求了,具体说明参见postfix的说明。
  
  
PS: 用过postfix后,就会不知不觉的放弃其他MTA,至少我是这样的。

上一篇:postfix邮件系统的调试 人气:2702
下一篇:Sendmail升级速成 人气:2744
浏览全部Qmail/Sendmail/Postf的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐