为了保证匿名性并保护用户的隐私,我需要设置一个执行以下操作的电子邮件服务器:
我该怎么做?Postfix?这项技术叫什么名字?是“邮件转发”还是“电子邮件中继”?
我在 DevOps 方面经验丰富,并且是一名软件开发人员。但我对电子邮件系统不太熟悉。
编辑:关键在于,将有一个系统,客户可以在其中上传原始的真实电子邮件地址,系统会将其转换为匿名电子邮件地址,而我们组织只能使用这些匿名电子邮件地址。这样做的好处是我们仍然可以在任何地方使用电子邮件地址,但我们永远不会看到或拥有真实的电子邮件地址。我们必须这样做才能遵守当地法律。
答案1
你正在寻找的是别名或重定向,可能每个像样的电子邮件服务器都可以做到这一点。让我描述一个解决方案进出口在 Debian 上。我们想将邮件重定向[email protected]
到其真实地址。
为了使别名的管理更加容易,我们将它们放在 SQL 表中(在此示例中为 Postgres、服务器localhost
、数据库client_db
):
CREATE TABLE client_aliases (local_part VARCHAR(32) PRIMARY KEY, real_address VARCHAR(64));
它将包含电子邮件地址的匿名本地部分和客户的真实地址。然后我们需要将 Postgres 凭据添加到 Exim 的配置中。为此,请添加一个文件,/etc/exim4/conf.d/main/99_servers
内容如下:
hide psql_servers = localhost/client_db/exim_role/exim_password
其中exim_role
和exim_password
是 Exim 的 Postgres 凭据。同时,我们需要更正 Debian 生成的配置文件的权限,因此我们需要更改 中的一行/etc/exim/update-exim4.conf.conf
:
CFILEMODE='640'
接下来我们在文件中创建一个 Exim 路由器,/etc/exim4/conf.d/450_client-aliases
内容如下:
client_aliases:
debug_print = "R: client_aliases for $local_part@$domain"
driver = redirect
domains = clients.domain.com
data = ${lookup pgsql{SELECT real_address FROM client_aliases WHERE local_part='${sg{$local_part}{'}{''}}'}}
现在您只需向表中添加一些数据,重新生成 Exim 的配置,然后就可以开始检查电子邮件地址解析:
update-exim4.conf
exim4 -bt
编辑:当然,您还需要更改 Exim 默认配置的其他部分,设置一些 ACL,以便重定向仅对某些 IP 和发件人地址起作用,检查 SPF 策略,以便 Exim 服务器被授权从您的域发送带有信封发件人的电子邮件等。我的观点是证明从 DB 表设置别名很简单。