Sendmail 未发送到机器主机名的域

Sendmail 未发送到机器主机名的域

我最近在我们的系统上设置了反向 DNS,并将服务器的主机名设置为我的域名. 因为我已完成此操作 -- Sendmail 将发送至任何领域除了 我的域名。 我读过了这个问题,但该问题的 OP 没有“真正”验证该域名是否属于该服务器。我有一个网站我的域名在服务器上,A 记录和 PTR 记录都正确指向服务器。MX 记录我的域名指向mx1.emailsrvr.commx2.emailsrvr.com正确(Rackspace)。

我假设它认为该邮件是本地的,因此不会将其“发送出去”,但我不确定。

以下是已发送并正确接收的消息的日志示例:

Oct 29 16:29:10 mydomain sendmail[1421]: w9TLTA1w001421: from=zak, size=389, class=0, nrcpts=1, msgid=<[email protected]>, relay=zak@localhost
Oct 29 16:29:10 mydomain sm-mta[1422]: w9TLTABl001422: from=<[email protected]>, size=565, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA-v4, relay=mydomain.com [127.0.0.1]
Oct 29 16:29:10 mydomain sendmail[1421]: w9TLTA1w001421: [email protected], ctladdr=zak (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30389, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (w9TLTABl001422 Message accepted for delivery)
Oct 29 16:29:11 mydomain sm-mta[1424]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1.2, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256, bits=128/128
Oct 29 16:29:11 mydomain sm-mta[1424]: w9TLTABl001422: to=<[email protected]>, ctladdr=<[email protected]> (1000/1000), delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=120565, relay=gmail-smtp-in.l.google.com. [173.194.195.26], dsn=2.0.0, stat=Sent (OK 1540848551 k3-v6si10178885ite.86 - gsmtp)

以下是一封对方从未收到的电子邮件的示例:

Oct 29 16:24:31 mydomain sendmail[544]: w9TLOV8v000544: from=zak, size=375, class=0, nrcpts=1, msgid=<[email protected]>, relay=root@localhost
Oct 29 16:24:31 mydomain sm-mta[545]: w9TLOVxv000545: from=<[email protected]>, size=552, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA-v4, relay=mydomain.com [127.0.0.1]
Oct 29 16:24:31 mydomain sendmail[544]: w9TLOV8v000544: [email protected], ctladdr=zak (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30375, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (w9TLOVxv000545 Message accepted for delivery)
Oct 29 16:24:31 mydomain sm-mta[546]: w9TLOVxv000545: to=<[email protected]>, ctladdr=<zak@mydomain com> (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30762, dsn=2.0.0, stat=Sent

这是我的发送邮件

define(`_USE_ETC_MAIL_')dnl
include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID(`$Id: sendmail.mc, v 8.15.2-3 2015-12-10 18:02:49 cowboy Exp $')
OSTYPE(`debian')dnl
DOMAIN(`debian-mta')dnl
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
undefine(`confHOST_STATUS_DIRECTORY')dnl        #DAEMON_HOSTSTATS=
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
dnl #
dnl # General defines
dnl #
dnl # SAFE_FILE_ENV: [undefined] If set, sendmail will do a chroot()
dnl #   into this directory before writing files.
dnl #   If *all* your user accounts are under /home then use that
dnl #   instead - it will prevent any writes outside of /home !
dnl #   define(`confSAFE_FILE_ENV',             `')dnl
dnl #
dnl # Daemon options - restrict to servicing LOCALHOST ONLY !!!
dnl # Remove `, Addr=' clauses to receive from any interface
dnl # If you want to support IPv6, switch the commented/uncommentd lines
dnl #
FEATURE(`no_default_msa')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
dnl #
dnl # Be somewhat anal in what we allow
define(`confPRIVACY_FLAGS',dnl
`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl
dnl #
dnl # Define connection throttling and window length
define(`confCONNECTION_RATE_THROTTLE', `15')dnl
define(`confCONNECTION_RATE_WINDOW_SIZE',`10m')dnl
dnl #
dnl # Features
dnl #
dnl # use /etc/mail/local-host-names
FEATURE(`use_cw_file')dnl
dnl #
dnl # The access db is the basis for most of sendmail's checking
FEATURE(`access_db', , `skip')dnl
dnl #
dnl # The greet_pause feature stops some automail bots - but check the
dnl # provided access db for details on excluding localhosts...
FEATURE(`greet_pause', `1000')dnl 1 seconds
dnl #
dnl # Delay_checks allows sender<->recipient checking
FEATURE(`delay_checks', `friend', `n')dnl
dnl #
dnl # If we get too many bad recipients, slow things down...
define(`confBAD_RCPT_THROTTLE',`3')dnl
dnl #
dnl # Stop connections that overflow our concurrent and time connection rates
FEATURE(`conncontrol', `nodelay', `terminate')dnl
FEATURE(`ratecontrol', `nodelay', `terminate')dnl
dnl #
dnl # If you're on a dialup link, you should enable this - so sendmail
dnl # will not bring up the link (it will queue mail for later)
dnl define(`confCON_EXPENSIVE',`True')dnl
dnl #
dnl # Dialup/LAN connection overrides
dnl #
include(`/etc/mail/m4/dialup.m4')dnl
include(`/etc/mail/m4/provider.m4')dnl
dnl #
dnl # Default Mailer setup
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl
define(`MAIL_HUB`, 'mydomain.com.')dnl
define(`LOCAL_RELAY`, 'mydomain.com.')dnl

为什么 sendmail 会向每个域发送邮件?除了mydomain.com?我们使用 Rackspace 来处理mydomain.com电子邮件。如果我dig MX 对 mydomain.com 执行此操作,MX 记录也会正确显示。我被难住了!

答案1

只要正确命名主机即可。任何系统的主机名都不应等于裸域名。除此之外,它还会破坏电子邮件。Sendmail 会查看本地主机名,如果该主机名与传入邮件的收件人域匹配,它会认为应该在本地发送邮件,并完全忽略 MX 记录。

相关内容