其他答案中提到的正则表达式与电子邮件地址的用户部分匹配(登录用户 @ example.org)。这里是一些其他信息。
要将完整的电子邮件地址用作用户名,请使用以下正则表达式(例如/etc/postfix/login_map
):
/^(.*)$/ ${1}
这意味着您的用户名始终是您的完整电子邮件地址(login-in-user@example.org)-不允许从该地址发送其他任何现有的用户名-并且您不必每次都更新其他Postfix配置文件添加用户。
这可能在配置了多个域的服务器上使用。仅允许用户john.doe@example.com从该地址发送,而不能从john.doe@example.org(不同的用户和电子邮件,不同的人)发送。在这种情况下,用户名john.doe将是不明确的。
另外,根据您的配置,必须指向此文件的smtpd_sender_login_maps设置可能位于master.cf(而不是main.cf)中。Dovecot的官方文档包含以下示例(如果您使用的是SASL /提交):
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sender_login_maps=hash:/etc/postfix/virtual
-o smtpd_sender_restrictions=reject_sender_login_mismatch
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
在此示例中,应将设置调整为指向正确的文件,并使用regex或(更好)pcre作为类型。特别是如果一个名为“虚拟”的文件已经用于其他用途(例如,用于virtual_alias_maps,如官方Postfix示例所示),则应将另一个文件用于登录映射。
从:
smtpd_sender_login_maps=hash:/etc/postfix/virtual
至:
smtpd_sender_login_maps=pcre:/etc/postfix/login_map