有点难以解释,但很简单的问题。
我们有内部的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
通过运行makemap(1)重buildvirtusertable.db映射,并且Sendmail应该能够处理电子邮件ok的交付部分:
# cd /etc/mail
# makemap hash virtusertable < virtusertable
控制哪个本地用户被允许发送电子邮件是稍微涉及的。 您可以使用“ relay_mail_from ”和访问映射条目,但由于我没有真正尝试过,我会让其他人回答更多有用的细节。