我的邮件服务器的默认配置使用reject_authenticated_sender_login_mismatch
设置smtpd_sender_restrictions
来防止任意用户 A 以用户 B 的身份发送电子邮件(在 FROM 字段中)。我意识到这通常是一个很好的策略,因为即使是一个受损的用户帐户基本上也会将我的邮件服务器作为垃圾邮件中继打开。
但是,我想允许特定用户(通过白名单)以任何用户身份发送邮件。例如,我想让我的网络服务器验证自己的身份,[email protected]
但随后能够代表 、 等发送[email protected]
电子邮件[email protected]
。
所有其他经过身份验证的用户应该只能以他们自己的身份发送电子邮件。
我认为我对文件的了解是正确的,该/etc/postfix/sender-login-maps.cf
文件目前包含:
dbpath=/home/user-data/mail/users.sqlite
query = SELECT permitted_senders
FROM (
SELECT permitted_senders, 0 AS priority
FROM aliases
WHERE source='%s'
AND permitted_senders IS NULL
UNION
SELECT email as permitted_senders, 2 AS priority
FROM users
WHERE email='%s'
)
ORDER BY priority LIMIT 1;
我不知道如何修改它来完成我想要的。
我想出了如何修改查询
/etc/postfix/sender-login-maps.cf
以允许任何具有“管理员”权限(如users.sqlite
表中定义)的用户像同一域中的任何其他用户一样发送电子邮件:所以基本上,如果
[email protected]
设置为管理员(您可以在用户数据库中或通过您的帐户配置界面执行此操作),那么[email protected]
将允许以 、 等发送邮件[email protected]
。[email protected]
这对我来说似乎是一个合理的策略。