電子メールヘッダーからapache @ localhostを削除しますか?


11

私の設定:Apacheウェブサーバーを備えたAmazon Linuxサーバー(基本的にはCentOSのようです)でMagentoウェブサイトを実行しています。また、mydomain.comのメールの管理にもGoogle Appsを使用しています。

サーバーの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バックエンドでReturn-Pathを「はい」に設定します(システム->設定->詳細->システム->メール送信設定。

役立つ場合は、/ 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への切り替えは解決策ではなく、回避策です。代わりにPostfixを動作させようとする他の潜在的な問題に遭遇するために、これまでにSendmailで行ったすべてのセットアップをルート化するのは嫌です。上記の箇条書きを読んでいる場合は、php.iniでsendmailコマンドを編集することについても既に言及しました。

編集私は、うまくいかなかった他のいくつかのことを言及しようと考えました。sendmail.mcに次の行を追加しました。

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

次に、その中に「mydomain.com」という単一の行を含むgenerics-domainsファイルを作成しました。次に、その中に「apache mail@homebrewsupply.com」という単一の行を含むgenericstableファイルを作成しました。メールディレクトリでmakeを実行し、cfファイルを再作成し、sendmailを再起動しましたが、サイコロはありません。

/ etc / aliasesファイルを編集してみました。「apache:root、mail @ mydomain.com」という行だけでなく「apache:mail@mydomain.com」と言うように行を変更しようとしましたが、それでも何もしませんでした。

また、/ etc / mail / virtuserstableファイルに「apache @ localhost mail@mydomain.com」という1行を追加してみました。それも何もしませんでした。

これを適切に機能させるのがどれほどイライラするか、私は驚いています。私はそれを必要な場所に持っていることに非常に近いが、正直なところ「apache @ localhost」の行を置き換えるためにどこを探しているのかわからない。



1つは、これらの質問に対する解決策がうまくいかないことです。最初の解決策は、「sendmailを動作させる方法がわからなかったので、あきらめて、代わりにpostfixに切り替えました」に要約されます。これは問題の解決策ではなく、回避策です。ホスト名にサーバー名を追加するための2番目の解決策もうまくいきませんでした。そして、誰かが2年以上前の質問に他の実行可能なソリューションを追加するのを待つことができるというわけではありません。
ゼロウイング

回答:


4

差出人の電子メールアドレスは、MTAで設定されたドメイン名(sendmailまたはpostfix)に送信されるメッセージ(apache)を呼び出したデーモンのユーザーです。

ローカルMTAが後置の場合、myorigin設定(デフォルトでは構成済みのホスト名になります。この例ではlocalhost)を変更する必要があります。この設定はmain.cfにあります(ほとんどのディストリビューションのデフォルトの場所はです/etc/postfix/main.cf)。それを送信元のドメイン名に変更するだけです。その後、postfixを再起動します。

もちろん、目的の送信ドメインに一致するようにサーバーのホスト名を変更する方が簡単な場合があります。

このサーバーからそのドメインに電子メールを送信する場合は、それを許可するSPF DNSレコードを追加する必要があります。追加しないと、スパムフィルターによってメッセージがダンプされる可能性があります。


こんにちは、私のMTAは実際にはsendmailです。ただし、可能な限りすべての調整を行ったと思います(質問にこれらの変更の一部を追加してみます)。「目的の送信ドメインに一致するようにサーバーのホスト名を変更する」ことも明確にできますか?コマンドラインで「hostname」と入力してmydomain.comを出力するように設定する必要がある場合は、その設定が既にあります。また、ドメインのSPFレコードセットもあります。SPFとDKIMがセットアップされ、正常に動作していることを質問で述べました(電子メールヘッダーに両方のパスが表示されます)。
ゼロウィング

次の提案に役立つ可能性のある投稿を見つけました。unixのエンベロープ「送信元」アドレスを変更するには、sendmailバイナリに「-r」オプションを指定します。これは、「-r」オプションを「sendmail_path」コマンドラインに追加することにより、php.iniでグローバルに実行できます。ソース:stackoverflow.com/questions/5666312/…–
ジョー

php.iniの「sendmail_path」に「-r」を追加しようとしましたが、メールが突然サーバーからの送信を停止したため、これは何かを壊しているように見えました。具体的には、行を--- sendmail_path = / usr / sbin / sendmail -t -i -r mail@mydomain.comに変更しましたが、まだ機能しませんでした(引用符の有無にかかわらず、必ずサーバーを再起動してください。ただし、サイコロは使用しません。その時点以降、サーバーがメールを送信できなかった理由はわかりません)。
ゼロウイング

3

あなたの設定を見ると、いくつかのビットが欠けているようです(そして私の構文は申し訳ありませんが、私は頻繁に投稿しません):

MASQUERADE_DOMAINをホストのFQDN(ほとんどのLinuxプラットフォームではhostname -f)に一致させ、MASQUERADE_DOMAINに合わせてMASQUERADE_DOMAIN構成オプションを追加することをお勧めします。それらが両方存在しない場合、私はそれが奇妙なことをするようにしたので、それは次のようになります:

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#」の違いは何ですか?

私はまだ自分のサーバーの「アパッチ」の部分を取り除くことを試みていますが、これがあなたに少し近づくことを願っています!


1

システム->構成->詳細->システム->リターンパスの設定->はい

または、使用するメールに設定します。今日これを見つけました-明らかに、いくつかのメールは厳格なルール(.edu、.gov ... etc)を持つメールサーバーによって拒否されていたようです。


SPFレコードが無視され、電子メールがサイトから私たちに送信されたときに偽装されているというフラグが立てられている理由を解決しようとして無駄な時間を費やしました。気がついたら、Received-Fromヘッダーが私をここに導いた。30秒のソリューションは即座に機能し、何時間ものフラストレーションに終止符を打ちました。この問題の最も簡単なソリューションとこのページのMagento。サーバー設定を変更する前に、まずこれを試してみることをお勧めします。
アシュリースワトン

サーバーベースのメールサービスを完全にオフにして、Sparkpost + smtpProプラグインを使用することをお勧めします。1か月あたり100,000件のメールを無料で受け取ることができます。
カルビンクリエン

1

追加してdefine(`confRECEIVED_HEADER', `internal info removed')dnlからファイルをsubmit.mc生成し、通常どおり.cf再起動sendmailします。

重要:これが機能するために編集する必要があるファイルはsubmit.mcであり、ではありませんsendmail.mcsendmail.mc代わりにファイルを編集Receivedすると、言及したヘッダーの上のヘッダーが変更されます(つまり、Received: from mydomain.com (www.mydomain.com [127.0.0.1]))。

注:リテラル文字列の代わりに、internal info removed機密情報を非表示にして提供された情報の一部を再利用できます(例:by $j id $i; $bto get)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バージョンをヘッダーから削除する方法

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.