sendmail:将通配符MX转发到单个电子邮件地址

我正在尝试设置sendmail将所有电子邮件转发至** @ **。crm.mycompany.com至[email protected]。 不幸的是,我的sendmail-fu不起作用,在Google上找不到任何有用的东西。

我的计划是使用现有的内部Linux服务器(CentOS 5),从我们的一个备用外部IP端口转发SMTPstream量到它,并设置通配符MXlogging指向该外部IP。 不过,我还没有设法使sendmail与此工作。

我已经设法得到非通配的情况下工作,例如,通过添加test.crm.mycompany.com到/ etc / mail / local-host-names并添加一个“@ test.crm.mycompany.com”行到virtusertable。 但是我看不到如何做通配符的情况。 这些文件似乎并不接受域名中的通配符,并且据我所见,唯一可以pipe理通配符DNS的configuration是relay_entire_domain。 但是,如果我configuration我的testing域的中继,那么它忽略了virtusertable和procmail,只是试图中继电子邮件 – 所以除非我可以触发中继电子邮件的任何一个,我不认为我可以pipe理这个。 这里最后的一个问题是,我似乎无法将$ = m设置为mycompany.com – 它始终是我们的内部域名(主机名是server.internal.lan,$ = m是internal.lan)和DOMAIN(mycompany .com)sendmail.mc中的dnl尝试包含/ usr / share(?)中的文件。

我正在尝试做什么? 我希望能够重用一个内部服务器 – 我需要把服务器放在防火墙外还是放在DMZ中? 用Postfix或者其他的东西,这会更容易吗?

感谢您的任何build议!
鲁珀特。

正如你所说,你需要一个DNS通配符。

当来自通配符地址的邮件进入时,sendmail不知道如何处理它。 您可以通过添加一个sendmail重写规则来修改这个问题,以将wild子域的部分重写为主域部分。

在你的sendmail.mc中:

LOCAL_NET_CONFIG R $+ < @ $+ .example.com. > $* $: $1 < @ example.com > $3 dnl 

请注意,您需要使用选项卡将左侧规则与右侧replace分开。 ( $*在左边结束; $:在右边开始)。请注意,左边的尾部点可能是必要的,也可能不是必需的。 另外请注意,在右侧和注释之后( $3dnl之间)需要第二个选项卡。

您需要确保example.com位于您的relay-domains文件中。

一旦域被重写规则折叠,您可以将域的所有邮件路由到具有virtusertable条目的单个用户:

 @example.com luser 

这应该关于做到这一点。