Sendmail:将同一域的邮件传递到内部或外部邮件服务器

Sendmail:将同一域的邮件传递到内部或外部邮件服务器

解释起来有点困难,但是问题很简单。

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

例如,我们一个办公室有两个用户。 [电子邮件保护]仅限本地 [电子邮件保护]是内部加上外部。

内部意味着我们在设置了 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

[email protected] [email protected]

[email protected] [email protected]

virtusertable.db通过运行重建地图制作地图(1),并且 Sendmail 应该能够处理送货电子邮件部分内容正常:

# cd /etc/mail

# makemap hash virtusertable < virtusertable

控制允许哪个本地用户发送电子邮件稍微复杂一些。您可能能够使用“ relay_mail_from”并访问地图条目,但由于我还没有真正尝试过,所以我会让其他人回答更有用的细节。

相关内容