Zer*_*ing 12 sendmail apache-2.2
我的设置:我在带有 Apache 网络服务器的 Amazon Linux 服务器(似乎基本上是 CentOS)上运行 Magento 网站。我还使用 Google Apps 来管理 mydomain.com 的邮件。
我能够成功地为服务器设置 MX、SPF 和 DKIM 记录并使它们正常工作,因此当我发送电子邮件时,我会收到 SPF 和 DKIM 的“通行证”。但是,我遇到了一个我似乎无法解决的奇怪问题 --- 我发送的电子邮件的部分标题似乎总是说:
Received: (from apache@localhost) by mydomain.com
Run Code Online (Sandbox Code Playgroud)
我一直在寻找一种方法来将其更改为使用“mail@mydomain.com”,但我似乎无法弄清楚。
我尝试过的事情包括:
如果有帮助,我的 /etc/hosts 文件的内容如下:
127.0.0.1 www.mydomain.com
127.0.0.1 mydomain.com
127.0.0.1 localhost localhost.localdomain
Run Code Online (Sandbox Code Playgroud)
对于主机文件的最后一行,我还尝试了变体...
127.0.0.1 localhost.localdomain mydomain.com
Run Code Online (Sandbox Code Playgroud)
……但还是不行。
我认为如果我添加电子邮件的标题也可能会有所帮助,以防这可能会为可能发生的事情提供一些线索(我已经更改了很多值以使其具有普遍性)。
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
Run Code Online (Sandbox Code Playgroud)
我的一部分不确定这是否正常,我想我不确定是什么导致 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
Run Code Online (Sandbox Code Playgroud)
编辑我不确定这个问题是否再次被标记为重复,所以我想我应该强调为什么它不是基于所提到的问题的推理,为什么不是。切换到 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
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个泛型域文件,其中包含一行“mydomain.com”。然后,我创建了一个 genericstable 文件,其中包含一行“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”行。
发件人电子邮件地址是调用在 MTA 中配置的域名(sendmail 或 postfix)发送邮件 (apache) 的守护程序的用户。
如果您的本地 MTA 是 postfix,则需要更改 myorigin 设置(在本例中默认为配置的主机名.localhost)。此设置位于 main.cf 中(大多数发行版中的默认位置是/etc/postfix/main.cf
)。只需将其更改为您想要发送的域名即可。然后重新启动postfix。
当然,您可能更容易更改服务器的主机名以匹配所需的发送域。
请记住,如果您要从该服务器向该域发送电子邮件,您将需要添加允许它的 SPF DNS 记录,否则您的邮件可能会被垃圾邮件过滤器转储。