解释起来有点困难,但是问题很简单。
我们有内部发送邮件服务器和托管服务器。两者都设置为相同的域名。我们有混合邮件帐户。
例如,我们一个办公室有两个用户。 [电子邮件保护]仅限本地 [电子邮件保护]是内部加上外部。
内部意味着我们在设置了 sendmail 的本地 Linux 机器上创建用户。
外部意味着我们在本地和托管服务器上创建用户。
[电子邮件保护]可以向安装了 sendmail 的 Linux 机器上创建的任何内部用户发送邮件。但他无法向外部域发送邮件,而且由于没有在外部托管服务器上创建帐户,因此无法向他发送任何邮件。
[电子邮件保护]可以通过 sendmail 的 smart_host 功能(使用托管服务器的 smtp)向内部以及所有其他域发送邮件。 [电子邮件保护]可以通过Linux机器上的Fetchmail在内部获取所有外部电子邮件。
现在我们有第三个用户 [电子邮件保护]谁将永远在外地并且只能使用外部服务器。
所以我无法在本地 Linux 机器上创建账户[电子邮件保护] 因为他的邮件只会在本地投递。我不想创建别名并将他的邮件发送到 gmail 或 yahoo 的帐户。我想从任何内部用户向他的外部帐户发送电子邮件。
如何做到这一点?提前致谢。
答案1
对于电子邮件的传递部分注定对于其中一位用户,您可以使用“virtusertable”功能。要重定向仅一些用户到外部地址,例如对于您的示例用户,您可以将其添加到您的sendmail.mc
文件中:
功能(virtusertable,`hash -o /etc/mail/virtusertable')
然后在/etc/mail/virtusertable
文件中使用类似这样的内容来发送电子邮件[电子邮件保护]本地,并发送电子邮件至[电子邮件保护]或者 @[电子邮件保护]* 到远程托管服务器:
[email protected] localuser
virtusertable.db
通过运行重建地图制作地图(1),并且 Sendmail 应该能够处理送货电子邮件部分内容正常:
# cd /etc/mail
# makemap hash virtusertable < virtusertable
控制允许哪个本地用户发送电子邮件稍微复杂一些。您可能能够使用“ relay_mail_from
”并访问地图条目,但由于我还没有真正尝试过,所以我会让其他人回答更有用的细节。