/etc/aliases vs virtusertable

syl*_*lye 7 email-server sendmail aliases

我有一个运行 Sendmail 的邮件服务器,该服务器托管多个邮件域。例如,发送至@aaa.com 和@bbb.com 的电子邮件都将发送到同一台服务器。一直以来,我都在/etc/mail/virtusertable用来管理不同邮件域的不同用户到不同本地帐户的映射。

但现在我才发现/etc/aliases可能正在做类似的事情。

  • /etc/aliases和的不同作用是/etc/mail/virtusertable什么?
  • 什么aliases能做但不能做virtusertable,反之亦然?

我在网上搜索过,但找不到任何以非常详细的方式比较差异的网站。

AnF*_*nFi 6

sendmail 中 virtusertable 和别名之间的主要区别

virtusertable提供收件人地址的一对一映射。aliases提供一对多映射(对于邮件列表很方便)。

aliases映射“无域”收件人(本地电子邮件域中的收件人,电子邮件的域部分已被剥离)。virtusertable映射完整的收件人地址。

virtusertable 处理“电子邮件域中的所有其他/剩余地址”的重新映射。

“virtusertable to alias”映射可用于获得一对多映射。


向导级别提示:可以让 sendmail.cf 处理完整电子邮件(用户部分和域)的别名,但使用 sendmail.org 提供的 m4 文件生成的 sendmail.cf 不处理它。实现它不会很复杂,但恕我直言,可以保证一些意想不到的“副作用” => 适当的测试期将是LONG


Dia*_*ond 5

简答:

别名是将系统上的一个本地收件人名称转换为另一个的过程,并且别名仅发生在本地名称上。这意味着,username必须可以通过密码数据库中的getpwnam获得:

例如,本地密码文件 /etc/passwd、NIS 和 LDAP。

sendmailvirtusertable功能支持虚拟用户,这意味着它映射非系统用户。


我从这里引用了以下内容。解释的很好,请看。

/etc/mail/别名

此数据库文件包含扩展为用户、文件、程序或其他别名的虚拟邮箱列表。以下是一些说明文件格式的条目:

root: localuser
ftp-bugs: joe,eric,paul
bit.bucket:  /dev/null
procmail: "|/usr/local/bin/procmail"
Run Code Online (Sandbox Code Playgroud)

冒号左侧的邮箱名称扩展为右侧的目标。第一个条目将根邮箱扩展为 localuser 邮箱,然后在 /etc/mail/aliases 数据库中查找。如果未找到匹配项,则将消息传递给 localuser。第二个条目显示一个邮件列表。Mail to ftp-bugs 扩展为三个本地邮箱 joe、eric 和 paul。远程邮箱可以指定为 user@example.com。第三个条目显示了如何将邮件写入文件,在本例中为 /dev/null。最后一个条目演示了如何通过 UNIX® 管道向程序 /usr/local/bin/procmail 发送邮件。有关此文件格式的更多信息,请参阅 aliases(5)。

/etc/mail/virtusertable

此数据库文件将虚拟域和用户的邮件地址映射到真实邮箱。这些邮箱可以是本地的、远程的、/etc/mail/aliases 中定义的别名或文件。这允许在一台机器上托管多个虚拟域。

以下示例演示如何使用该格式创建自定义条目:

root@example.com                root
postmaster@example.com          postmaster@noc.example.net
@example.com                    joe
Run Code Online (Sandbox Code Playgroud)

该文件按第一个匹配顺序进行处理。当电子邮件地址与左侧地址匹配时,它会映射到右侧列出的本地邮箱。本示例中第一个条目的格式将特定电子邮件地址映射到本地邮箱,而第二个条目的格式将特定电子邮件地址映射到远程邮箱。最后,来自 example.com 的任何未匹配任何先前条目的电子邮件地址将匹配最后一个映射并发送到本地邮箱 joe。

现在对您的问题进行更详细的回答:

  • 别名数据库文件包含扩展为用户、文件、程序或其他别名的虚拟邮箱列表。
  • 这个 virtuser 数据库文件将虚拟域和用户的邮件地址映射到真实邮箱。这些邮箱可以是本地的、远程的、/etc/mail/aliases 中定义的别名或文件。这允许在一台机器上托管多个虚拟域。
  • 另一方面,sendmail virtusertable 功能配置对虚拟用户表的支持。虚拟用户表将发往someuser@host 的传入邮件映射到someotheruser@otherhost可以将其视为一种高级邮件别名功能,该功能不仅使用目标用户,还使用目标域进行操作。 关键部分(左侧)必须是完整地址(用户、主机和域名),或者是没有主机部分的地址(只是一个域)。