/ etc / aliases vs virtusertable

我有一个运行Sendmail的邮件服务器,它承载了多个邮件域。 例如,发给@ aaa.com和@ bbb.com的电子邮件都会发送到同一台服务器。 所有这一次我使用/etc/mail/virtusertable来pipe理不同邮件域的不同用户到不同本地帐户的映射。

但是现在我刚刚发现/etc/aliases可能会做类似的事情。

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

我已经通过networkingsearch,但找不到任何网站,以非常详细的方式比较差异。

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

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

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

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

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


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

简答:别名是将系统中的一个本地收件人名称转换为另一个本地收件人名称的过程。 别名仅在本地名称上发生 。 这意味着, username必须通过getpwnam可用,这意味着username必须存在于本地的/etc/passwd文件中。

sendmail virtusertablefunction支持虚拟用户,这意味着它映射非系统用户。


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

在/ etc / mail / aliases中

此数据库文件包含扩展到用户,文件,程序或其他别名的虚拟邮箱的列表。 这里有几个条目来说明文件格式:

 root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail" 

冒号左侧的邮箱名称扩展到右侧的目标。 第一项将根邮箱扩展到本地用户邮箱,然后在/ etc / mail / aliases数据库中查找该邮箱。 如果找不到匹配,则将消息发送给本地用户。 第二项显示一个邮件列表。 Mail to ftp-bugs扩展到三个本地邮箱joe,eric和paul。 远程邮箱可以指定为[email protected]。 第三项显示如何将邮件写入文件,在这种情况下是/ dev / null。 最后一项演示如何通过UNIX®pipe道将邮件发送到/ usr / local / bin / procmail程序。 有关该文件格式的更多信息,请参阅别名(5)。

在/ etc /邮件/的virtusertable

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

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

 [email protected] root [email protected] [email protected] @example.com joe 

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

现在更详细地回答你的问题:

    • 别名数据库文件包含扩展到用户,文件,程序或其他别名的虚拟邮箱的列表。
    • 此virtuser数据库文件将虚拟域和用户的邮件地址映射到真实邮箱。 这些邮箱可以是本地,远程,在/ etc / mail / aliases或文件中定义的别名。 这允许在一台机器上托pipe多个虚拟域。

    2。

    • 别名处理本地用户/邮箱。 您可以将远程电子邮件地址放在右栏,它将起作用。 但是你不能在左边有一个虚拟的电子邮件地址,并把它映射到别的东西上。 Alises文件不知道您的系统虚拟地址或用户。
    • 另一方面,sendmail virtusertablefunctionconfiguration对虚拟用户表的支持。 虚拟用户表将发往某个用户@主机的传入邮件映射到其他用户@其他主机人们可以将其视为高级邮件别名function,不仅可以使用目标用户,还可以使用目标域。 关键部分(左侧)必须是完整的地址(用户,主机和域名),或者没有主机部分(只是一个域)的地址。

我记得的主要区别是, virtusertable可能包含信息以及用户信息; 那是; [email protected][email protected]virtusertable中都是有效的和独特的左手边,但是在aliases一起使用时,会产生duplicate alias name错误。

这仍然留下一整套可以合法进入的条目; 我的感觉是,应该尽可能使用aliases ,为那些特定领域的事物留下virtusertable的优势。

孟加拉(qv)注意到一些更重要的差异,例如将电子邮件发送到pipe道和文件的能力。