이메일 헤더에서 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 백엔드에서 리턴 경로를 "예"로 설정 (시스템-> 구성-> 고급-> 시스템-> 메일 전송 설정)

도움이된다면 / 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.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"이라는 한 줄로 generics-domains 파일을 만들었습니다. 그런 다음 "apache mail@homebrewsupply.com"이라는 한 줄로 genericstable 파일을 만들었습니다. 메일 디렉토리에서 make를 실행하고 cf 파일을 다시 만든 다음 sendmail을 다시 시작했지만 주사위는 없습니다.

/ etc / aliases 파일을 편집하려고했습니다. 나는 "apache : mail@mydomain.com"뿐만 아니라 "apache : root, mail @ mydomain.com"이라고 말하기 위해 "apache : root"줄을 바꾸려고했지만 아무 것도하지 않았다.

또한 / etc / mail / virtuserstable 파일에 "apache @ localhost mail@mydomain.com"한 줄을 추가하려고했습니다. 그것은 아무것도하지 않았다.

이것이 제대로 작동하는 것이 얼마나 실망 스럽습니까? 나는 그것이 필요한 곳에 그것을 가지고있는 것에 매우 가깝다. 그러나 나는 "apache @ localhost"줄을 대체 할 곳을 정직하게 모른다.



하나는 그 질문에 대한 해결책이 효과가 없다는 것입니다. 첫 번째 해결책은 "sendmail을 작동시키는 방법을 알 수 없었기 때문에 포기하고 대신 postfix로 전환했습니다"로 요약됩니다. 그것은 문제에 대한 해결책이 아니며 해결책입니다. 호스트 파일에 서버 이름을 추가하는 두 번째 솔루션도 저에게 효과적이지 않았습니다. 따라서 본질적으로 발생하는 문제는 달라야합니다. 그리고 누군가 2 년이 지난 질문에 다른 실행 가능한 솔루션을 추가 할 때까지 기다릴 수는 없습니다.
Zero Wing

답변:


4

보낸 사람 전자 메일 주소는 MTA에 구성된 도메인 이름 (sendmail 또는 postfix)으로 메시지를 보내도록 요청한 데몬의 사용자입니다.

로컬 MTA가 접미사 인 경우 myorigin 설정을 변경해야합니다 (기본값은 구성된 호스트 이름. localhost로 설정 됨). 이 설정은 main.cf에 있습니다 (대부분의 배포판의 기본 위치는 /etc/postfix/main.cf). 보내려는 도메인 이름으로 변경하십시오. 그런 다음 postfix를 다시 시작하십시오.

물론 원하는 전송 도메인과 일치하도록 서버의 호스트 이름을 변경하는 것이 더 쉬울 수 있습니다.

해당 도메인에 대해이 서버에서 이메일을 보내려면이를 허용하는 SPF DNS 레코드를 추가해야합니다. 그렇지 않으면 스팸 필터에 의해 메시지가 덤프 될 수 있습니다.


안녕하세요, MTA는 실제로 sendmail이지만 가능한 모든 조정 작업을 수행했다고 생각합니다 (제 질문에 이러한 변경 사항 중 일부를 추가해 보겠습니다). "원하는 전송 도메인과 일치하도록 서버의 호스트 이름 변경"에 대해서도 설명해 주시겠습니까? mydomain.com을 출력하도록 명령 줄에 "hostname"을 입력 할 때 이미 설정되어 있도록해야합니다. 또한 도메인에 대한 SPF 레코드가 설정되어 있는데 SPF 및 DKIM이 설정되어 성공적으로 작동하고 있다는 질문에 언급했습니다 (전자 메일 헤더에 모두 패스가 표시됨).
Zero Wing

유닉스에서 봉투 "보낸 사람"주소를 변경하려면 sendmail 바이너리에 "-r"옵션을 지정하십시오. "sendmail_path"명령 행에 "-r"옵션을 추가하여 php.ini에서 전체적으로이를 수행 할 수 있습니다. 출처 : stackoverflow.com/questions/5666312/…
Joe

php.ini의 "sendmail_path"에 "-r"을 추가하려고했지만 메일이 갑자기 서버에서 발송을 중단했기 때문에 문제가있는 것 같습니다. 더 구체적으로 말하면 줄을 --- sendmail_path = / usr / sbin / sendmail -t -i -r mail@mydomain.com으로 변경했지만 여전히 작동하지 않습니다 (따옴표없이 사용하고 따옴표로 만들었습니다) 서버를 다시 시작해야하지만 주사위는 없습니다. 그 시점 이후에 전자 메일을 보낼 수없는 이유는 확실하지 않습니다).
Zero Wing

3

설정을 살펴보면 몇 가지 비트가 누락 된 것 같습니다 (내 구문으로 죄송하지만 자주 게시하지는 않습니다).

MASQUERADE_DOMAIN과 함께 MASQUERADE_DOMAIN 구성 옵션을 추가하여 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 ... etc)으로 메일 서버에서 거부되었습니다.


SPF 레코드가 왜 무시되고 이메일이 사이트에서 당사로 전송 될 때 여전히 스푸핑 된 것으로 플래그가 지정되었는지 확인하기 위해 낭비한 시간. 직감이 있었기 때문에 Received-From 헤더가 나를 이끌었습니다. 30 초 솔루션이 즉시 작동하여 몇 시간 동안 좌절을 겪었습니다! 이 문제에 대한 가장 간단한 해결책 및이 페이지의 마 젠토. 서버 구성을 변경하기 전에 먼저 시도해보십시오.
Ashley Swatton

서버 기반 이메일 서비스를 완전히 끄고 Sparkpost + smtpPro 플러그인을 사용하는 것이 좋습니다. 한달에 100,000 개의 이메일을 보내는 매력처럼 작동합니다.
Kalvin Klien

1

추가 define(`confRECEIVED_HEADER', `internal info removed')dnl하는 submit.mc다음 생성 .cf파일을 다시 시작 sendmail평소와 같이합니다.

중요 : 이 작업을 수행하기 위해 편집해야하는 파일은 submit.mcNOT sendmail.mc입니다. sendmail.mc대신 파일 을 편집 Received하면 위에서 언급 한 헤더가 수정 된 헤더 (즉)가 Received: from mydomain.com (www.mydomain.com [127.0.0.1])됩니다.

참고 : 리터럴 문자열 대신 internal info removed민감한 정보를 숨기면서 제공된 일부 정보를 재사용 할 수 있습니다 (예 : by $j id $i; $bto) 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.