我怎样才能避免使用 Postfix 的 550“中继被拒绝”?

我怎样才能避免使用 Postfix 的 550“中继被拒绝”?

我一直在使用 fetchmail 和 postfix长的是时候从我的私人 Linux 盒子接收和发送电子邮件了。我的ISP被收购合并了好几次,但原来的SMTP主机始终保持工作。现在我必须切换到一个新的主机来发送邮件(mail.o2mail.de),而这个主机不允许我发送邮件:

550 5.7.1 <RECIPIENT>... Relaying denied: You must check for new mail before sending mail. (in reply to RCPT TO command)

因此服务器希望我在发送外发邮件之前检查传入邮件。如果我理解正确的话,此工作流程适用于 Windows LiveMail 或 KMail 等桌面邮件程序,它们实际上总是在同一会话中接收和发送电子邮件。但我从来没有这样做过,而且我不知道如何做(我通过 fetchmail 轮询接收邮件,而且仍然工作正常)。

我想我可以使用提供商的网络邮件界面,或者切换到独立的电子邮件客户端;但是我喜欢使用 emacs 和 VM 发送和接收电子邮件。我喜欢 emacs 撰写文本的强大功能,喜欢 grep 纯文本邮箱,喜欢能够使用 elisp 配置用户体验...

我可能很守旧,但有没有办法让我继续按照自己喜欢的方式做事呢?能否以某种方式使 postfix 表现得像那些新奇的一体化电子邮件程序之一?我应该输入什么内容/etc/postfix/main.cf才能让我的提供商接受我的外发邮件?

编辑我尝试过的事情不成功

  • 使用端口 465:收到错误“客户端包装模式(端口 smtps/465)未实现;相反,使用 STARTTLS 发送到(端口提交/587)”
  • 按照说明使用端口 587:这会导致与使用端口 25 完全相同的“中继被拒绝”错误。

我无法快速解除与 ISP 的合同(几年,而不是几个月)。我有一个gmail地址,虽然我很少使用它。我可以使用 Google 的服务来发送电子邮件postfix吗?

编辑事实证明,仅当用户以纯文本方式连接时才会出现“中继被拒绝”的情况。通过告诉 postfix 通过 ssl 连接并提供我的帐户凭据,远程服务器足够信任我,可以接受我发给任何人的消息。 (唯一的困惑是为什么他们以前的服务器首先接受纯文本登录,现在对我来说这似乎非常不安全。)

所以解决方案本质上是添加

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = 
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

/etc/postfix/main.cf提供该文件中的登录凭据。

答案1

这是一个信任问题,中继意味着您连接的邮件主机会将您的邮件发送到其他域。有两种方法可以使其工作:将您的计算机添加到邮件主机的配置中,或使用每个用户的其他身份验证(用户名/密码)如果您可以使用此邮件主机从桌面发送邮件,则尝试在 postfix 中配置身份验证。

相关内容