首先,你得提供一个密码文件给postfix,其中包含能通过远程服务器得证书数据。此密码文件得每一笔记录,各包含一个代表远程服务器的网域以及一组能通过该服务器验证的账户与密码,格式如下:
destination username:password
当postfix要寄出一封邮件时,它先检查收件地址的网域部分,如果不能在密码文件中找到完全相符的destination,再寻找打算联机的主机名称。这种检查过程使得postfix可以轻易连接共享相同账户数据库的多个mx主机。决定密码文件位置的参数是 smtp_sasl_password_maps。
决定客户端行为的是smtp_sasl_security_options参数,其设定方法与服务器端的 smtpd_sasl_security_options参数相同,所以不再赘述。如果你没指定任何选项,则默认行为是容许系统上所有能找到的机制,唯独匿名登录除外。
smtp客户端验证的设定过程
让我们举个例子来示范要如何设定postfix,才能使其在通过远程系统转发邮件时,提出自己的身份证明。在这个例子中,假设我们有一组可以通过ora.com网域的所有服务器主机的账户以及一组可以通过mail.postfix.org主机的账户。
1、创建/etc/postfix/sasl_passwd密码文件,并填入我们拥有的账户与密码,例如:
ora.com kdent:rumpelstiltskin
mail.postfix.org kyle:quixote
2、使用postmap产生数据库文件:
postmap /etc/postfix/sasl_passwd
3、编辑main.cf配置文件,启动客户端验证功能。请注意,这次要设定的参数是smtp_sasl_auth_enable,而不是 smtpd_sasl_auth_enable(后者用于启动服务器端验证)。接着,在smtp_sasl_password_maps参数中指出密码文件的位置:
smtp_asal_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
4、重新加载postfix,使我们所做的改变生效:
postfix reload
现在,每当postfix smtp client试图通过/etc/postfix/sasl_passwd所列的任何网域或主机来转发邮件时,它就会提供对应的验证书籍。比方说,如果你的 postfix smtp client联机到mail.ora.com服务器,则它会使用kden与rumpelstiltskin这组账户与密码。
寄出邮件时,postfix使用系统的resolver(即DNS client,能向DNS server查询网域信息的函数库)来取得DNS信息。收信时,你的网域的DNS必须能提供递送信息(MX或A记录)给外界查询,让其他MTA能够找到你的postfix server。
DNS对于寄信程序的影响
postfix的smtp MDA必须要能够取得MX与A记录,才能决定收信主机的名称与ip地址。也就是说,在寄信程序中,postfix至少要进行两次DNS查询,第一次是为了取得MX主机名称,另一次是取得该主机名称的ip地址。由于postfix使用操作系统的resolver来访问DNS server,因此,运行postfix的系统至少要能够访问一台DNS server。虽然大部分运行postfix的系统通常也会运行DNS server,但是这并非必要条件。
如果你怀疑自己的系统不能够正确的查询DNS信息,有三个命令行工具可以帮你找出问题:nslookup、 dig以及host。绝大部分unix系统都应该安装这三个工具。你可以利用这些工具查出特定网域的所有类型的资料记录,包括让postfix能将邮件送到正确主机的MX记录。
DNS问题可能源自于postfix所在系统本身的设定错误,也可能是目标网域的DNS server没有设定好。当你寻找问题原因时,有非常重要的一点必须谨记在心:postfix总是先查mx记录,然后再查A记录。即使你可以顺利查出网域名称的ip地址,但是如果该网域没有提供mx信息,postfix不一定能够在第一次就顺利寄出邮件。
配置文件选项
投递邮件时,postfix从DNS系统查出目标网域的所有MX资源记录,然后依据优先值来排序。在postfix顺利连接到收信方的smtp server之后,对方会以状态码来回答smtp MDA的要求。介于2xx范围之间的状态码代表答应要求;若是返回4xx范围内的状态码,表示对方遇到呢暂时性的错误;如果是状态码在5xx范围内,表示发生永久性问题。
PTR记录
为了防治垃圾邮件,现在有许多SMTP server要求客户端的ip地址必须要能够查出有效的PTR资源记录。因此,你的postfix系统的ip地址必须在DNS系统里有一个指向 postfix主机规范名称的PTR记录,这样才能确保所有SMTP SERVER都原意收下你寄出的邮件
DNS对于收信程序的影响
要让postfix收下特定网域的邮件,运行postfix的主机本身名称必须被列在该网域的MX记录里,而且postfix也必须被设定成可以收下该网域的邮件。postfix能收下三种网域的邮件:系统本身所处的本地网域(local domain)、转发网域(relay domains)、虚拟网域(virtual domains)。其中虚拟网域可能是使用虚拟别名(virtual aliases)或虚拟邮箱(virtual mailboxes)。每一种网域都必须被列在特定的postfix参数才有效。
网域类型 参数
本地 mydestination
转发 relay_domains
虚拟邮箱 virtual_mailbox_domains
虚拟别名 virtual_alias_domains
同一个网域不可同时列于不同参数中。如果postfix在两个参数找到同一个网域,它会发出警告。如果你在日志文件看到"mail for example.com loops back to myself"这样的错误信息,通常是因为你的postfix server被列在某网域的MX列表里,但是postfix却没被设定成可以收下该网域的邮件。
常见问题
DNS设定不当所造成的问题,通常没有立刻可见的效果,只能从日志文件里的错误信息来分析。
"mail for domain loops back to myself" (某网域的邮件绕回我自己)
所有关于DNS的错误中,这可能是最常见的。问题原因是你的postfix server被列在某网域的MX列表里,但是你没让postfix知道,它自己就是该网域的邮件终点站。所以,解法就是将该网域列在 mydestination参数,或是设定为虚拟网域或转发网域。倘若你的postfix server是列在porxy或NAT设备之后,它可能无法察觉自己是某网域的MX主机,在这种情况下,你得将proxy系统得ip地址加到 proxy_interfaces参数
"host found but no data record of requested type"(能找到主机,但是没有指定数据类型得记录)
网域得DNS数据库里找不到MX记录,而且网域名称自己也没有A记录。你得要联络该网域得DNS管理员才能解决这问题。如果你自己就是DNS域名数据库得管理员,请确定你的邮件服务器的主机名称确实列在该网域的MX记录里。
"no mx host for domain has a valid A record"
网域的DNS数据库有MX记录,但是查不出mx主机名称所对应的ip地址。你得要联络该网域DNS管理员才能解决这问题。对于你自己得网域,请确定mx记录所列得每一个主机名称,都有一个有效而且正确得A记录。
"host not found, try again"
从 DNS系统中查询不出任何有意义得结果。有可能是DNS serer断线或拒绝服务,甚至故障。如果能确定该网域得DNS SERVER正常运作无误,问题可能是网络,或是postfix server系统本身得resolver没有设定妥当。对于最后一种可能,你应该检查系统的/etc/nsswitch.conf与/etc /resolv.conf配置文件。
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |