![sendmail:网站和电子邮件在同一个域/服务器上](https://linux22.com/image/549059/sendmail%EF%BC%9A%E7%BD%91%E7%AB%99%E5%92%8C%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E5%9C%A8%E5%90%8C%E4%B8%80%E4%B8%AA%E5%9F%9F%2F%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A.png)
我的网站使用 sendmail,我的电子邮件地址也使用相同的服务器名称。因此,www.zedsaid.com 和[电子邮件保护]。Sendmail 似乎不想真正地将邮件发送到我的收件箱,而是想在服务器本地发送,而这并不是我想要的。
这是我尝试发送测试时得到的结果:
zedsaid:/etc# echo "Subject: test" | /usr/lib/sendmail -v [email protected]
[email protected]... Connecting to [127.0.0.1] via relay...
220 zedsaid.com ESMTP Sendmail 8.14.3/8.14.3/Debian-5+lenny1; Thu, 12 May 2011 15:34:11 -0700; (No UCE/UBE) logging access from: zedsaid.com(OK)-zedsaid.com [127.0.0.1]
>>> EHLO zedsaid.com
250-zedsaid.com Hello zedsaid.com [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<[email protected]> SIZE=14
250 2.1.0 <[email protected]>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
550 5.1.1 <[email protected]>... User unknown
503 5.0.0 Need RCPT (recipient)
>>> RSET
250 2.0.0 Reset state
>>> RSET
250 2.0.0 Reset state
root... Using cached ESMTP connection to [127.0.0.1] via relay...
>>> MAIL From:<> SIZE=1038
250 2.1.0 <>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
050 <[email protected]>... aliased to nnhubbard
250 2.1.5 <[email protected]>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
050 nnhubbard... Connecting to local...
050 nnhubbard... Sent
250 2.0.0 p4CMYBLv009705 Message accepted for delivery
root... Sent (p4CMYBLv009705 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 zedsaid.com closing connection
发送邮件.mc:
divert(-1)dnl
#-----------------------------------------------------------------------------
# $Sendmail: debproto.mc,v 8.14.3 2010-01-29 14:02:50 cowboy Exp $
#
# Copyright (c) 1998-2008 Richard Nelson. All Rights Reserved.
#
# cf/debian/sendmail.mc. Generated from sendmail.mc.in by configure.
#
# sendmail.mc prototype config file for building Sendmail 8.14.3
#
# Note: the .in file supports 8.7.6 - 9.0.0, but the generated
# file is customized to the version noted above.
#
# This file is used to configure Sendmail for use with Debian systems.
#
# If you modify this file, you will have to regenerate /etc/mail/sendmail.cf
# by running this file through the m4 preprocessor via one of the following:
# * make (or make -C /etc/mail)
# * sendmailconfig
# * m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# The first two options are preferred as they will also update other files
# that depend upon the contents of this file.
#
# The best documentation for this .mc file is:
# /usr/share/doc/sendmail-doc/cf.README.gz
#
#-----------------------------------------------------------------------------
divert(0)dnl
#
# Copyright (c) 1998-2005 Richard Nelson. All Rights Reserved.
#
# This file is used to configure Sendmail for use with Debian systems.
#
define(`_USE_ETC_MAIL_')dnl
include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID(`$Id: sendmail.mc, v 8.14.3-5+lenny1 2010-01-29 14:02:50 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, Addr=127.0.0.1')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
dnl # Masquerading options
FEATURE(`always_add_domain')dnl
MASQUERADE_AS(`zedsaid.com')dnl
FEATURE(`allmasquerade')dnl
FEATURE(`masquerade_envelope')dn
升
这是否意味着它位于服务器上用户网卡的邮件文件夹中?我希望这封电子邮件通过 smtp 发送并进入我的实际收件箱。
帮助?
答案1
如果您的服务器认为它提供了您的邮件,则这是一个常见问题。
通常,邮件服务器有多种选项,如果您在服务器上运行本地 DNS,但实际使用的是外部 DNS(即 NS 未指向 Web 服务器)并且本地设置了 MX 记录,那么它将在本地进行传送,exim/sendmail 也可以配置为自动接受机器域。特别是如果您使用的是标准托管环境(如 cPanel)。
cPanel 有一个选项可以告诉服务器电子邮件要采用什么设置,本地/备份/远程。您需要弄清楚 sendmail 配置发生了什么,并告诉它不要接受本地邮件,而是像转发其他邮件一样转发它。
答案2
您需要从 local-host-names 中删除您的域名。否则 sendmail 会认为它是该域的最终目的地。
您不需要修改 sendmail.mc 来解决这个问题。