私の設定:アマゾンLinuxサーバー(基本的にはCentOSのようです)上でApacheウェブサーバーを使用してMagentoウェブサイトを実行しています。 mydomain.comのメールの管理にもGoogle Appsを使用しています。
サーバーのMX、SPF、およびDKIMレコードを正常に設定して機能させることができたため、メールを送信すると、SPFとDKIMの両方の「パス」を受信しました。しかし、私は乗り越えられないように見える奇妙な問題に遭遇しました---送信する電子メールのヘッダーの一部は常に次のように思われます:
Received: (from Apache@localhost) by mydomain.com
これを変更して「[email protected]」を代わりに使用する方法を探してみましたが、わかりません。
私が試したことの中で:
問題がなければ、私の/ 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: [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ファイルに加えた構成変更です。
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への切り替えは解決策ではなく、回避策と同じです。私がこれまでに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」という1行を含むgenerics-domainsファイルを作成しました。次に、その中に「Apache [email protected]」という1行を含むgenericstableファイルを作成しました。メールディレクトリでmakeを実行し、cfファイルを再作成して、sendmailを再起動しましたが、ダイスはありませんでした。
/ etc/aliasesファイルを編集してみました。 「Apache:root」という行を「Apache:root、mail @ mydomain.com」だけでなく「Apache:[email protected]」に変更してみましたが、どちらも何もしませんでした。
また、/ etc/mail/virtuserstableファイルに「Apache @ localhost [email protected]」という1行を追加してみました。それも何もしませんでした。
これを適切に機能させることがいかに苛立たしいかに驚いています。私は必要な場所に非常に近いですが、「Apache @ localhost」の行を置き換えるためにどこを探しているのか正直にわかりません。
送信元メールアドレスは、MTAで設定されたドメイン名(sendmailまたはpostfix)でメッセージの送信を要求したデーモン(Apache)のユーザーです。
ローカルMTAがpostfixの場合、myorigin設定を変更する必要があります(デフォルトでは、構成されたホスト名になります。この例ではlocalhost)。この設定はmain.cfにあります(ほとんどのディストリビューションのデフォルトの場所は/etc/postfix/main.cf
)。それを送信元のドメイン名に変更するだけです。その後、postfixを再起動します。
もちろん、目的の送信ドメインに一致するようにサーバーのホスト名を変更する方が簡単な場合があります。
このサーバーからそのドメインにメールを送信する場合は、それを許可するSPF DNSレコードを追加する必要があることに注意してください。そうしないと、メッセージがスパムフィルターによってダンプされる可能性があります。
あなたの設定を見ていると、いくつかのビットが欠けているようです(そして私の構文では申し訳ありませんが、私は頻繁に投稿しません):
おそらく、MASQUERADE_DOMAIN構成オプションを追加してMASQUERADE_ASに対応させ、MASQUERADE_DOMAINをホストのFQDNに一致させる必要があります(ほとんどのLinuxプラットフォームではhostname -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」の部分を取り除こうとしていますが、これで少し近づくことを願っています!
_submit.mc
_にdefine(`confRECEIVED_HEADER', `internal info removed')dnl
を追加し、次に_.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; $b
_ _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のバージョンをヘッダーから削除する方法
システム->設定->詳細->システム->リターンパスの設定->はい
または、使用するメールに設定します。今日これを見つけました-どうやら厳格なルール(.edu、.gov ... etc)を持つメールサーバーによってメールの一部が拒否されているようです