从电子邮件标题中删除apache @ localhost?


11

我的设置:我正在带有Apache Web服务器的Amazon Linux服务器(似乎基本上是CentOS)上运行Magento网站。我还使用Google Apps管理mydomain.com的邮件。

我能够成功地为服务器设置MX,SPF和DKIM记录并使它们正常工作,这样,当我发送电子邮件时,我会同时获得SPF和DKIM的“通行证”。但是,我遇到了一个奇怪的问题,我似乎无法解决---我发送的电子邮件的标头的一部分似乎总是说:

Received: (from apache@localhost) by mydomain.com 

我已经在上下搜索了将其更改为使用“ mail@mydomain.com”的方法,但是我似乎无法弄清楚。

在我尝试过的事情中:

  • 将php.ini更改为:/ usr / sbin / sendmail -t -i -f mail@mydomain.com
  • 将以下行添加到mydomain.conf的虚拟主机中:ServerAdmin mail@mydomain.com
  • 在Magento后端中将返回路径设置为“是”(系统->配置->高级->系统->邮件发送设置。

如果有帮助,我的/ etc / hosts文件的内容如下:

127.0.0.1   www.mydomain.com
127.0.0.1   mydomain.com
127.0.0.1   localhost localhost.localdomain

对于hosts文件的最后一行,我还尝试了变体...

127.0.0.1   localhost.localdomain mydomain.com

...但是还是没用。

我认为如果添加电子邮件标头也可能会有所帮助,以防万一可以为可能发生的事情提供一些线索(我更改了很多值以使其泛化)。

Delivered-To: zerowing@email.com
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: <mail@mydomain.com>
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 <zerowing@email.com>
        (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 mail@mydomain.com 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 mail@mydomain.com designates 66.66.777.77 as permitted sender) smtp.mail=mail@mydomain.com;
       dkim=pass header.i=@mydomain.com
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 <zerowing@email.com>; 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: <201504031535.fkdjfljlfsra39393@mydomain.com>
To: =?utf-8?B?Sm9lIEdhcmNpYQ==?= <zerowing@email.com>
Subject: =?utf-8?B?VGVzdCBOZXdzbGV0dGVyLCBwbGVhc2UgaWdub3Jl?=
X-PHP-Originating-Script: 48:Sendmail.php
From: "mydomain.com" <mail@mydomain.com>
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文件进行的配置更改,以适应我的站点。

MASQUERADE_AS(`mydomain.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')
define(`confCW_FILE', `/etc/mail/local-host-names')dnl
dnl define(`confDOMAIN_NAME', `mydomain.com')dnl

编辑我不确定这个问题是否再次被标记为重复,因此我认为我应该强调为什么它不基于所提到的问题而不是为什么。切换到Postfix并不是一种解决方案,而是一种解决方法。我不愿意根除迄今为止使用Sendmail完成的所有设置,而只是遇到尝试使Postfix正常工作的其他潜在问题。如果您阅读了上面提到的要点,我也已经提到在php.ini中编辑sendmail命令。

编辑我认为我不妨提及我尝试做的其他一些不起作用的事情。我在sendmail.mc中添加了以下几行:

FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl

然后,我创建了一个通用域名文件,其中包含单行“ mydomain.com”。然后,我创建了一个通用表文件,其中包含单行“ apache mail@homebrewsupply.com”。我在邮件目录中运行了make,重新创建了cf文件,然后重新启动了sendmail,但是没有骰子。

我尝试编辑/ etc / aliases文件。我尝试将“ apache:root”这一行改为“ apache:root,mail @ mydomain.com”,也只是“ apache:mail@mydomain.com”,但这也没有做任何事情。

我还尝试将单行“ apache @ localhost mail@mydomain.com”添加到/ etc / mail / virtuserstable文件中。那也没做任何事。

让它正常工作真令人沮丧。我已经非常接近需要它的地方,但是老实说,我不知道要替换“ apache @ localhost”这一行的地方。



对于一个人来说,这些问题的解决方案对我不起作用。第一个解决方案归结为“我不知道如何使sendmail正常工作,所以我放弃了,转而使用postfix。” 那不是解决问题的方法,而是一种解决方法。第二种将服务器名添加到hosts文件的解决方案对我也不起作用-因此,基本上我遇到的问题必须有所不同。并不是我可以等待有人为超过2年的问题添加其他可行的解决方案。
零翼

Answers:


4

“发件人”电子邮件地址是守护程序的用户,该守护程序要求发送邮件(apache)@MTA中配置的域名(sendmail或postfix)。

如果本地MTA是后缀,则需要更改myorigin设置(在此示例中,默认设置为配置的主机名。localhost)。此设置位于main.cf中(大多数发行版中的默认位置是/etc/postfix/main.cf)。只需将其更改为您要发送的域名即可。然后重新启动后缀。

当然,您只需更改服务器的主机名以匹配所需的发送域,可能会更容易。

请记住,如果要从该服务器发送该域的电子邮件,则需要添加允许它的SPF DNS记录,否则您的邮件可能会被垃圾邮件过滤器转储。


嗨,我的MTA实际上是sendmail,尽管我认为我已经对其进行了所有可能的调整(我将尝试在问题中添加一些更改)。您还可以澄清“更改服务器的主机名以匹配所需的发送域”吗?如果您是说我应该这样做,那么当我在命令行上键入“主机名”以便输出mydomain.com时,我已经进行了设置。而且,我确实为该域设置了SPF记录,我在问题中提到我已经设置了SPF和DKIM并可以正常工作(我在电子邮件标题中都看到了通行证)。
零翼

找到了可能有助于建议以下内容的帖子:要更改UNIX上的信封“发件人”地址,请为sendmail二进制文件指定“ -r”选项。您可以在php.ini中全局执行此操作,方法是在“ sendmail_path”命令行中添加“ -r”选项。来源:stackoverflow.com/questions/5666312/…–

我尝试在php.ini中的“ sendmail_path”中添加“ -r”,但这似乎有些破绽,因为邮件突然停止了从服务器的发送。更具体地说,我将行更改为--- sendmail_path = / usr / sbin / sendmail -t -i -r mail@mydomain.com,但仍然无法正常工作(我尝试使用带引号和不带引号的方式,请确保重新启动服务器,但不要重启,我不确定在那之后阻止它发送电子邮件的原因是什么)。
零翼

3

在查看您的配置时,似乎缺少了一些信息(对不起我的语法,我不经常发布):

您可能需要添加MASQUERADE_DOMAIN配置选项以与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”部分,但我希望这可以使您更近一点!


1

系统->配置->高级->系统->设置返回路径->是

或将其设置为您要使用的电子邮件。今天才发现-显然有些电子邮件被严格的规则(.edu,.gov等)的邮件服务器拒绝了


浪费时间试图找出为什么我们的SPF记录被忽略的原因,以及从我们的网站发送给我们的电子邮件仍被标记为欺骗邮件。有一种预感,就是“ Received-From”标头将我引到了这里。您30秒钟的解决方案立即奏效,并消除了数小时的挫败感!此页面和Magento的最简单解决方案。建议您先尝试此操作,然后再更改服务器配置。
Ashley Swatton

我建议完全关闭基于服务器的电子邮件服务,仅使用Sparkpost + smtpPro插件。每月免费提供100,000封电子邮件,就像魅力一样。
卡尔文·克莱恩

1

添加define(`confRECEIVED_HEADER', `internal info removed')dnlsubmit.mc生成.cf文件并sendmail照常重启。

重要提示:为了使其正常工作,应对其进行编辑的文件是submit.mc,而不是sendmail.mc。如果您编辑sendmail.mc文件,则Received上面提到的标题上方的标题将被修改(即Received: from mydomain.com (www.mydomain.com [127.0.0.1]))。

注意:internal info removed您可以在隐藏敏感信息的同时重用提供的某些信息,而不是文字字符串,例如:by $j id $i; $bget by DOMAIN id ID; TIMESTAMP

上面的代码将删除/替换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版本

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.