gpt4 book ai didi

postfix-mta - 如何将 Postfix 配置为仅中继来自特定域的电子邮件?

转载 作者:行者123 更新时间:2023-12-05 03:02:11 28 4
gpt4 key购买 nike

我已经回答了我自己的问题,稍后可能会更新这个问题以反射(reflect)我的出发点/我为获得解决方案所采取的步骤,但我想我会问一个我开始的问题和采取的结果我花费了不合理的大量时间进行研究,反复试验。请进行任何编辑,或提出您自己的 postfix/main.cf 解决方案,因为我还有很多东西要学。

问题介绍

因此,我在“example.com”的服务器上自行托管了一些东西,并将 Postfix 设置为我的邮件传输代理 (MTA)。在我的邮件服务器上,我有一个 virtual_alias 设置来接收特定“email_users@example.com”的电子邮件到我在服务器上的用户名。我的母校启用了电子邮件转发功能,以便将发送至“student@college.edu”或“alum@alum.college.edu”的电子邮件转发至“email_users@example.com”并在我的用户收件箱中接收。基本上所有电子邮件(发送到我的 .edu 或我的 .com)都转到/home/user/Maildir/new。

当使用 MUTT(我喜欢的 MUA)写电子邮件时,我偶尔会将我的电子邮件“发件人”字段更改为“student@college.edu”、“alumnus@alum.college.edu”,或者默认回复任何内容回复字段已启用。我的邮件服务器出站到其他服务器的所需行为如下:

  1. 对于“发件人:*@example.com”的电子邮件 - 通过 SMTP 通过本地 Postfix MTA 将电子邮件直接路由到互联网。 (* 代表通配符)
  2. 对于带有“FROM: student@college.edu”的电子邮件,通过本地 Postfix MTA 通过 SMTP 路由电子邮件,并将其转发到另一台经过身份验证的 SMTP 服务器,以便另一台服务器在没有任何软故障或退回的情况下传送(在此例如大学 SMTP 服务器)。

需要明确的是,当用户希望从以下位置发送邮件时,这是 Postfix 配置的问题:本地 Postfix MTA -> 外部 SMTP 服务器 -> 通过互联网收件人。

这些问题/操作指南通常省略了明确的答案,不是在问同样的事情,需要更好的标题,或者只是开始回答此设置开头的操作指南:

当然是 full documentation很有帮助,但如果您是 Postfix 的新手,则非常冗长且难以及时理解。例如,您可能希望在 SMTP 中继/访问控制下找到它,但我缺少的主要方面是在 SASL Auth 中的一般配置下。 .

最佳答案

为了将电子邮件中继到另一个 SMTP 服务器而不默认情况下始终中继,请使用配置文件 (/etc/postfix/main.cf) 中的 sender_dependent_relayhost_maps。如果您使用的是中继主机,请不要。

注意:smtp 用于传出邮件,smtpd 是传入邮件的守护进程

/etc/postfix/main.cf

 smtp_use_tls = yes
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_always_send_ehlo = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

现在在/etc/postfix/sender_relay 中,您必须指定要发送到感兴趣的外部 SMTP 服务器的电子邮件地址:

注意:方括号 '[ ]' 告诉 Postfix 不要使用 MX 记录。通常端口号为587

/etc/postfix/sender_relay

student@college.edu         [smtp.server.edu]:port
alumnus@alum.college.edu [alum.smtpserver.edu]:port

现在,当使用这些地址之一发送电子邮件时,它会中继到这些 SMTP 服务器以代表您发送。最后要做的是使用 SASL 对其进行授权。

注意:sender_relay 中指定的 SMTP 服务器必须与 sasl_passwd 中的匹配,sasl_passwd 中的用户名:密码对应与 sender_relay 中发送的用户及其对应的密码对匹配。如果不这样做,可能会导致/var/log/mail.log 中出现 pam_authenticate() 错误

/etc/postfix/sasl_passwd

[smtp.server.edu]:port      student:password
[alum.smtpserver.edu]:port alumnus:password

由于您在此处输入明文敏感信息,因此如果您之前没有更新所有权权限,请确保更新:

sudo chmod 600 /etc/postfix/sasl_passwd

最后要做的是使用 postmap 更新这些文件并使用新配置重新加载 postfix:

sudo postmap sasl_passwd
sudo postmap sender_relay
sudo postfix reload

关于postfix-mta - 如何将 Postfix 配置为仅中继来自特定域的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159882/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com