我的设置:我正在亚马逊Linux服务器上运行一个Magento网站(这似乎基本上是CentOS)与一个Apachenetworking服务器。 我还使用Google Apps来pipe理mydomain.com的邮件。
我能够成功地为服务器设置MX,SPF和DKIMlogging并使它们正常工作,以便在发送电子邮件时收到SPF和DKIM的“通行证”。 然而,我遇到了一个奇怪的问题,我似乎无法通过—我发送的邮件标题的一部分似乎总是说:
Received: (from apache@localhost) by mydomain.com
我search了一个方法来改变这个使用“[email protected]”,而我似乎无法弄清楚。
我试过的东西中有:
如果有帮助,我的/ etc / hosts文件的内容如下所示:
127.0.0.1 www.mydomain.com 127.0.0.1 mydomain.com 127.0.0.1 localhost localhost.localdomain
对于主机文件的最后一行,我也尝试了变化…
127.0.0.1 localhost.localdomain mydomain.com
…但它仍然没有工作。
我认为如果我添加电子邮件的标题也可能会有所帮助,以防可能会发生一些线索(我已经改变了很多值来保持它的一般性)。
Delivered-To: [email protected] Received: by 123.123.123.123 with SMTP id abcdefg123456790; Fri, 3 Apr 2015 08:35:04 -0700 (PDT) X-Received: by 456.456.456.456 with SMTP id asdfqwerhjkl234hjkl.789.78909876789; Fri, 03 Apr 2015 08:35:03 -0700 (PDT) Return-Path: <[email protected]> Received: from mydomain.com (ec2-11-11-111-11.amazonaws.com. [66.66.777.77]) by mx.google.com with ESMTPS id asdkfjhkjdfha839383.105.2015.04.03.08.35.02 for <[email protected]> (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 03 Apr 2015 08:35:03 -0700 (PDT) Received-SPF: pass (google.com: domain of [email protected] designates 66.66.777.77 as permitted sender) client-ip=66.66.777.77; Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email protected] designates 66.66.777.77 as permitted sender) [email protected]; dkim=pass [email protected] Received: from mydomain.com (www.mydomain.com [127.0.0.1]) by mydomain.com (8.14.4/8.14.4) with ESMTP id t33FZ29p004251 for <[email protected]>; Fri, 3 Apr 2015 15:35:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mydomain.com; s=default; t=fjIFDJF9049; bh=fjO4J4f09j409JF04J909f4j904JF940F9/Y=; h=To:Subject:From:Date; b=F4J90FJ490j09j490FJ094J0j94f90j409j490Jf90j904JF09j490fj904jf094J f09J40F9J904fj049J099j49J049J0FJijffjdlfjldkDLFJKLdjflEJFOIJFOEIEO JF9JF049j409j0F094J09FJ049jf049j= Received: (from apache@localhost) <----------- THIS IS WHAT I'M TRYING TO CHANGE by mydomain.com (8.14.4/8.14.4/Submit) id fkdjfljlfsra39393; Fri, 3 Apr 2015 15:35:01 GMT Message-Id: <[email protected]> To: =?utf-8?B?Sm9lIEdhcmNpYQ==?= <[email protected]> Subject: =?utf-8?B?VGVzdCBOZXdzbGV0dGVyLCBwbGVhc2UgaWdub3Jl?= X-PHP-Originating-Script: 48:Sendmail.php From: "mydomain.com" <[email protected]> Date: Fri, 03 Apr 2015 15:35:01 +0000 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline MIME-Version: 1.0
我的一部分不知道这是否正常,我想我不确定是什么可能导致apache @ localhost出现,但如果有人有一个想法,将不胜感激,谢谢!
编辑我正在使用的MTA是Sendmail。 以下是我对sendmail.mc文件进行的configuration更改以适应我的网站。
MASQUERADE_AS(`mydomain.com')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl INPUT_MAIL_FILTER(`opendkim', `S=inet:[email protected]') define(`confCW_FILE', `/etc/mail/local-host-names')dnl dnl define(`confDOMAIN_NAME', `mydomain.com')dnl
编辑我不确定这个问题是否被重新标记为重复,所以我想我应该强调为什么它不是基于所提及的问题,为什么不是这样的推理。 切换到Postfix不是一个解决scheme,而是一个解决方法。 我讨厌把我用Sendmail完成的所有设置都拔除,直到遇到其他潜在的问题,试图让Postfix工作。 我也已经提到编辑php.ini中的sendmail命令,如果你阅读我上面提到的项目符号点。
编辑我想我不妨提一些其他的事情,我尝试做,没有工作。 我添加到我的sendmail.mc下面的行:
FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
然后我在里面创build一个带有单行“mydomain.com”的generics域文件。 然后,我创build了一个通用的稳定的文件,其中单行“apache [email protected]”。 我在邮件目录中运行了make,重新创build了cf文件,并重新启动了sendmail,但没有骰子。
我试着编辑/ etc / aliases文件。 我尝试改变“apache:root”这一行来说“apache:root,mail @ mydomain.com”,以及“apache:[email protected]”,但是这也没有做任何事情。
我也尝试向/ etc / mail / virtuserstable文件中添加单行“apache @ localhost [email protected]”。 那也没有做任何事情。
我感到惊讶的是让这个工作正常工作是多么令人沮丧。 我很靠近我需要它的地方,但我真的不知道在哪里寻找获得“apache @ localhost”这一行。
来自电子邮件地址是守护程序的用户,该守护程序要求发送消息(apache)@在您的MTA(sendmail或postfix)中configuration的域名。
如果您的本地MTA是后缀,则需要更改myorigin设置(在本例中默认为configuration的主机名localhost)。 此设置位于main.cf中(大多数分发中的默认位置是/etc/postfix/main.cf
)。 只需将其更改为您希望从其发送的域名即可。 然后重新启动后缀。
当然,更改服务器的主机名以匹配所需的发送域可能更容易。
请记住,如果您打算从该服务器为该域发送电子邮件,则您将需要添加一个SPF DNSlogging,否则您的邮件可能会被垃圾邮件filter剔除。
在查看你的configuration时,似乎有一些遗漏(对于我的语法感到抱歉,我不经常发表):
您可能需要添加MASQUERADE_DOMAINconfiguration选项以使用MASQUERADE_AS,将MASQUERADE_DOMAIN与主机的FQDN(在大多数Linux平台上的主机名称-f)匹配。 如果他们不在这里,我会做一些奇怪的事情,所以这会是:
MASQUERADE_AS(`mydomain.com')dnl MASQUERADE_DOMAIN(`fqdnname.internal')dnl
然后这一行:
dnl define(`confDOMAIN_NAME', `mydomain.com')dnl
应该是真的
define(`confDOMAIN_NAME', `mydomain.com')dnl
或者当您更新sendmail.cf文件时,它将被make / hash命令忽略。 这家伙给出了一个很好的解释,为什么sendmail.mc文件中“dnl”和“dnl#”有什么区别?
我仍然试图摆脱我自己的服务器中的“apache”部分,但我希望这会让你更接近一点!
添加define(`confRECEIVED_HEADER', `internal info removed')dnl
submit.mc
然后生成.cf
文件并像往常一样重新启动sendmail
。
重要提示:要编辑的文件是submit.mc
,而不是sendmail.mc
。 如果您编辑sendmail.mc
文件,则您提到的Received
标题将是修改的(即Received: from mydomain.com (www.mydomain.com [127.0.0.1])
) Received: from mydomain.com (www.mydomain.com [127.0.0.1])
。
注意:除了文字string的internal info removed
您可以重新使用一些隐藏敏感信息的信息,例如: by $j id $i; $b
by $j id $i; $b
获取by DOMAIN id ID; TIMESTAMP
by DOMAIN id ID; TIMESTAMP
。
以上将删除/replace您提到的Received
标题后的信息:
Received: (from apache@localhost) <----------- THIS IS WHAT I'M TRYING TO CHANGE by mydomain.com (8.14.4/8.14.4/Submit) id fkdjfljlfsra39393; Fri, 3 Apr 2015 15:35:01 GMT
另请参见类似的问题: 如何从头文件中删除Received :(从apache @ localhost)和sendmail版本
系统 – >configuration – >高级 – >系统 – >设置返回path – >是
或将其设置为您要使用的电子邮件。 刚刚发现这个今天 – 显然有些邮件被拒绝的邮件服务器严格的规则(.edu,.gov等)