Sendmail:发送同一个域到内部或外部邮件服务器的邮件

有点难以解释,但很简单的问题。

我们有内部的sendmail服务器和托pipe服务器。 两者都设置为相同的域名。 我们有混合的邮件帐户。

例如,我们在一个办公室有两个用户。 [email protected]是本地的,只有[email protected]是内部加外部的。

内部意味着我们在设置sendmail的本地linux机器上创build用户。

外部意味着我们在本地和托pipe服务器上创build用户。

[email protected]可以发送邮件给安装了sendmail的Linux机器上创build的任何内部用户。 但他不能发送邮件到外部域,并且没有邮件可以发送给他,因为没有在外部托pipe服务器上创build帐户。

[email protected]可以通过使用托pipe服务器的smtp的sendmail的smart_hostfunction发送邮件到内部以及所有其他域。 [email protected]可以通过Linux机器上的Fetchmail获取所有外部邮件。

现在我们有第三个用户[email protected],他们总是在外地,只能使用外部服务器。

所以我不能在[email protected]的本地linux上创build帐户,因为他的邮件只能在本地交付。 我不想创build别名,并将他的邮件发送到Gmail或雅虎的帐户。 我想从任何内部用户发送电子邮件到他的外部帐户。

如何做到这一点? 提前致谢。

对于发这些用户之一的电子邮件的发送部分,您可以使用“virtusertable”function。 要将只有一些用户的电子邮件redirect到一个外部地址,例如您的示例用户,您可以将其添加到您的sendmail.mc文件中:

FEATURE(virtusertable,`hash -o / etc / mail / virtusertable')

然后在/etc/mail/virtusertable文件中使用类似这样的方式在本地提供[email protected]电子邮件, 并将[email protected]或@ c @ abc.com *的电子邮件发送到远程托pipe服务器:

[email protected] localuser

[email protected] [email protected]

[email protected] [email protected]

通过运行makemap(1)重buildvirtusertable.db映射,并且Sendmail应该能够处理电子邮件ok的交付部分:

# cd /etc/mail

# makemap hash virtusertable < virtusertable

控制哪个本地用户被允许发送电子邮件是稍微涉及的。 您可以使用“ relay_mail_from ”和访问映射条目,但由于我没有真正尝试过,我会让其他人回答更多有用的细节。