如何摆脱消息发送到不存在的子域?

我的sendmail服务器有小问题,需要你的帮助:-)

我的情况如下:

用户邮箱放在MS Exchanege服务器上,所有来自外部的邮件都通过我的sendmail邮箱中继。

Exchange server ----- sendmail server ------ Internet 

我的服务器接受一个主域(比如my.domain.com )和其他域的消息(让我们缩小一个,比如my_other.domain.com )。 configurationsendmail后显示下面的缩写sendmail.mc文件,基本上一切工作正常,但有一个小问题。 我想尽快拒绝发送给不存在收件人的邮件(为了避免发送非递送报告),所以我的sendmail服务器使LDAP查询交换服务器,validation每个收件人地址。 这适用于两个域,但不适用于子域。 这样的子域名不存在,但有人(我是指那些激烈的spaads :-)可以尝试这样的地址:

 user@any_host.my.domain.com 

要么

 user@any_host.my_other.domain.com 

对于这些地址的结果如下:

  1. 发送到user@sendmail_hostname.my.domain.com邮件将被拒绝,并显示错误“未知用户”(由于sendmail.mc文件中有额外的LDAPROUTE_DOMAIN行,这是预期的行为)
  2. 发送至user@any_other_hostname.my.domain.com邮件将被拒绝,并显示“中继拒绝”错误。 对我来说有点奇怪,为什么这次错误是不一样的,但还是可以的。 在所有消息被拒绝之后,我并不在乎什么错误代码将被返回给发件人(spamer)。
  3. 发送至user@sendmail_hostname.my_other.domain.comuser@any_other_hostname.my_other.domain.com邮件将被拒绝,并显示错误“未知用户”,但只有在没有user@my_other.domain.com邮箱(在Exchange服务器上)时user@my_other.domain.com 。 如果这样的邮箱存在,那么所有三个地址(即user@my_other.domain.comuser@sendmail_hostname.my_other.domain.comuser@any_other_hostname.my_other.domain.com )都将被接受。 (添加额外的行LDAPROUTE_DOMAIN(my_sendmail_host.my_other.domain.com)到我的sendmail.mc文件不会改变任何东西)

我的缩写sendmail.mc文件如下(sendmail 8.14.3-5)。 这两个域都列在/etc/mail/local-host-names文件( FEATURE(use_cw_file) )中:

 define(`_USE_ETC_MAIL_')dnl include(`/usr/share/sendmail/cf/m4/cf.m4')dnl OSTYPE(`debian')dnl DOMAIN(`debian-mta')dnl undefine(`confHOST_STATUS_DIRECTORY')dnl define(`confRUN_AS_USER',`smmta:smmsp')dnl FEATURE(`no_default_msa')dnl define(`confPRIVACY_FLAGS',`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl FEATURE(`use_cw_file')dnl FEATURE(`access_db', , `skip')dnl FEATURE(`always_add_domain')dnl MASQUERADE_AS(`my.domain.com')dnl FEATURE(`allmasquerade')dnl FEATURE(`masquerade_envelope')dnl dnl define(`confLDAP_DEFAULT_SPEC',`-p 389 -h my_exchange_server.my.domain.com -b dc=my,dc=domain,dc=com')dnl dnl define(`ALIAS_FILE',`/etc/aliases,ldap:-k (&(|(objectclass=user)(objectclass=group))(proxyAddresses=smtp:%0)) -v mail')dnl FEATURE(`ldap_routing',, `ldap -1 -T<TMPF> -v mail -k proxyAddresses=SMTP:%0', `bounce')dnl LDAPROUTE_DOMAIN(`my.domain.com')dnl LDAPROUTE_DOMAIN(`my_other.domain.com ')dnl LDAPROUTE_DOMAIN(`my_sendmail_host.my.domain.com')dnl define(`confLDAP_DEFAULT_SPEC', `-p 389 -h "my_exchange_server.my.domain.com" -d "CN=sendmail,CN=Users,DC=my,DC=domain,DC=com" -M simple -P /etc/mail/ldap-secret -b "DC=my,DC=domain,DC=com"')dnl FEATURE(`nouucp',`reject')dnl undefine(`UUCP_RELAY')dnl undefine(`BITNET_RELAY')dnl define(`confTRY_NULL_MX_LIST',true)dnl define(`confDONT_PROBE_INTERFACES',true)dnl define(`MAIL_HUB',` my_exchange_server.my.domain.com.')dnl FEATURE(`stickyhost')dnl MAILER_DEFINITIONS MAILER(smtp)dnl 

有人更有经验的sendmailbuild议我如何拒绝消息到这些不需要的子域?

PS邮箱@my_other.domain.com仅用于接收邮件,永远不会发送。

在configurationREADME中,您将看到使用MAIL_HUB将所有传入邮件redirect到中央集线器。 由于您有LDAP路由注释MAIL_HUB条目。