如何在Postfix服务器上中继电子邮件
作者:Stephan Jau
修订:v1.0
最后更改:2009年12月07日
介绍
对于两个小企业,我在他们的“家”dsl连接上设置了一个debian lenny安装。 问题是他们有动态的ip地址,大多数邮件服务器将不接受动态ip地址上服务器的接收邮件。 解决方案很简单。 设置Postfix,以便它将通过实际的ISP中继传出的电子邮件。 在这个简短的例子中,我会告诉你如何做到这一点。
先决条件
我假设你已经设置了一个工作的Postfix服务器,你有一个电子邮件帐户在您的ISP可以访问。 因此,您需要登录IPS的电子邮件帐户。
2.编辑Postfix配置
首先你需要编辑你的postfix配置...
nano /etc/postfix/main.cf
...并在配置结尾添加以下代码:
smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/saslpasswd smtp_always_send_ehlo = yes relayhost = smtp.yourisp.com
当然用你的ISP的smtp服务器替换smtp.yourisp.com
。 SASL也必须工作。 如果您按照Falko提供的完美服务器来设置服务器,那么您不用担心。 然后保存并关闭文件。
如果您的ISP要求您使用特殊端口发送电子邮件,则使用这样一行:
relayhost = [smtp.yourisp.com]:PORT
在我使用过的一个案例中,我不得不输入:
relayhost = [smtpauth.bluewin.ch]:587
3.编辑/ etc / postfix / saslpasswd
扩展Postfix配置后,您仍然需要将凭据添加到/ etc / postfix / saslpasswd
文件中,以便您可以在ISP上授权。
nano /etc/postfix/saslpasswd
然后添加:
smtp.yourisp.com yourlogin:yourpassword
当然,请用yourlogin / yourpassword替换ISP提供的实际用户名和密码。 您不需要在那里添加端口。
4.哈希/ etc / postfix / saslpasswd
在postfix可以使用该文件之前,需要通过postmap进行散列:
postmap /etc/postfix/saslpasswd
5.重新启动postfix
最后你需要重新启动postfix才能使用新的配置:
/etc/init.d/postfix restart
6.测试
当您使用电子邮件服务器发送电子邮件给自己(例如使用Gmail帐户)时,如果您检查该电子邮件的完整标题,您将看到该邮件通过您的ISP进行了转发。 这意味着它现在工作。 只要您的ISP现在没有列入黑名单,您的动态IP将不会阻止您发送电子邮件。