ลบ apache @ localhost จากส่วนหัวอีเมลหรือไม่


11

การตั้งค่าของฉัน: ฉันใช้งานเว็บไซต์ Magento บนเซิร์ฟเวอร์ Amazon Linux (ซึ่งโดยทั่วไปจะเป็น CentOS) ด้วยเว็บเซิร์ฟเวอร์ Apache ฉันยังใช้ Google Apps เพื่อจัดการเมลของ mydomain.com

ฉันสามารถตั้งค่าระเบียน MX, SPF และ DKIM สำหรับเซิร์ฟเวอร์สำเร็จและทำให้พวกเขาทำงานได้ดังนั้นฉันจึงได้รับ "Pass" สำหรับทั้ง SPF และ DKIM เมื่อฉันส่งอีเมล อย่างไรก็ตามฉันพบปัญหาแปลก ๆ ที่ดูเหมือนฉันจะไม่ได้รับในอดีต --- ส่วนหนึ่งของส่วนหัวสำหรับอีเมลที่ฉันส่งดูเหมือนจะพูดเสมอว่า:

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

ฉันค้นหาสูงและต่ำเพื่อหาวิธีเปลี่ยนสิ่งนี้ให้ใช้ "mail@mydomain.com" แทน แต่ฉันดูเหมือนจะไม่สามารถเข้าใจได้

ท่ามกลางสิ่งที่ฉันได้ลอง:

  • การเปลี่ยน php.ini เป็น say: / usr / sbin / sendmail -t -i -f mail@mydomain.com
  • เพิ่มไปยัง virtualhost ของ mydomain.conf ที่บรรทัด: ServerAdmin mail@mydomain.com
  • การตั้งค่า Return-Path เป็น "Yes" ใน Magento backend (ระบบ -> การกำหนดค่า -> ขั้นสูง -> ระบบ -> การตั้งค่าการส่งจดหมาย

หากช่วยได้เนื้อหาของไฟล์ / etc / hosts ของฉันจะเป็นดังนี้:

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

สำหรับบรรทัดสุดท้ายของไฟล์โฮสต์ฉันยังลองใช้ชุดรูปแบบ ...

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 ทำงานแทน ฉันยังกล่าวถึงการแก้ไขคำสั่ง sendmail ใน php.ini ถ้าคุณอ่านหัวข้อย่อยที่ฉันกล่าวถึงข้างต้น

แก้ไขฉันคิดว่าฉันอาจพูดถึงสิ่งอื่น ๆ ที่ฉันพยายามทำซึ่งไม่ได้ผล ฉันเพิ่ม sendmail.mc ของฉันในบรรทัดต่อไปนี้:

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

จากนั้นฉันสร้างไฟล์ generics-domains โดยมีบรรทัดเดียว "mydomain.com" อยู่ข้างใน จากนั้นฉันสร้างไฟล์ genericstable ที่มีบรรทัดเดียว "apache mail@homebrewsupply.com" ข้างใน ฉันสร้างเมล์ในไดเร็กตอรี่เมล, สร้างไฟล์ cf ใหม่, และเริ่ม sendmail ใหม่, แต่ไม่มีลูกเต๋า.

ฉันพยายามแก้ไขไฟล์ / etc / aliases ฉันพยายามเปลี่ยนบรรทัด "apache: root" เพื่อพูดว่า "apache: root, mail @ mydomain.com" เช่นเดียวกับ "apache: mail@mydomain.com" แต่ก็ไม่ได้ทำอะไรเลย

ฉันยังพยายามเพิ่มไฟล์ / etc / mail / virtuserstable ในบรรทัดเดียว "apache @ localhost mail@mydomain.com" นั่นไม่ได้ทำอะไรเลย

ฉันประหลาดใจที่ทำให้รู้สึกหงุดหงิดที่จะทำงานนี้ได้อย่างถูกต้อง ฉันใกล้ที่จะใช้มันในที่ที่ฉันต้องการ แต่ฉันก็ไม่รู้เหมือนกันว่าจะหาที่ไหนเพื่อรับบรรทัด "apache @ localhost"



สำหรับหนึ่งคำตอบสำหรับคำถามเหล่านั้นใช้ไม่ได้สำหรับฉัน ทางออกแรกที่ทำให้เดือดร้อนลงไปที่ "ฉันไม่สามารถหาวิธีที่จะทำให้ sendmail ทำงานได้ดังนั้นฉันจึงเลิกและเปลี่ยนไปใช้ postfix แทน" นั่นไม่ใช่วิธีแก้ปัญหา แต่เป็นวิธีแก้ไขปัญหา ทางออกที่สองสำหรับการเพิ่มชื่อเซิร์ฟเวอร์ไปยังไฟล์โฮสต์ก็ไม่ได้ผลสำหรับฉันดังนั้นปัญหาหลักที่ฉันพบต้องแตกต่างกัน และมันก็ไม่เหมือนกับว่าฉันสามารถรอให้ใครบางคนเพิ่มโซลูชันที่ใช้การได้กับคำถามที่มีอายุมากกว่า 2 ปี
Zero Wing

คำตอบ:


4

ที่อยู่อีเมลจากนั้นคือผู้ใช้ของ daemon ที่เรียกว่าข้อความที่จะส่ง (apache) @ ชื่อโดเมนที่กำหนดค่าใน MTA ของคุณ (sendmail หรือ postfix)

หาก MTA ในระบบของคุณเป็น postfix คุณจะต้องเปลี่ยนการตั้งค่า myorigin (ค่าเริ่มต้นคือชื่อโฮสต์ที่กำหนดค่าไว้ localhost ในตัวอย่างนี้) การตั้งค่านี้อยู่ใน main.cf (ตำแหน่งเริ่มต้นในการแจกแจงส่วนใหญ่คือ/etc/postfix/main.cf) เพียงแค่เปลี่ยนเป็นชื่อโดเมนที่คุณต้องการให้ส่ง จากนั้นรีสตาร์ท postfix

แน่นอนว่าคุณอาจเปลี่ยนชื่อโฮสต์ของเซิร์ฟเวอร์ให้ตรงกับโดเมนที่ต้องการส่งได้ง่ายขึ้น

โปรดทราบว่าหากคุณกำลังจะส่งอีเมลจากเซิร์ฟเวอร์นี้สำหรับโดเมนนั้นคุณจะต้องเพิ่มระเบียน SPF DNS ที่อนุญาตมิฉะนั้นข้อความของคุณอาจถูกทิ้งโดยตัวกรองสแปม


สวัสดี MTA ของฉันคือ sendmail จริง ๆ แต่ฉันคิดว่าฉันได้ทำการปรับเปลี่ยนที่เป็นไปได้ทั้งหมดที่สามารถทำได้ (ฉันจะลองเพิ่มการเปลี่ยนแปลงเหล่านี้บางอย่างในคำถามของฉัน) คุณสามารถอธิบายเกี่ยวกับ "การเปลี่ยนชื่อโฮสต์ของเซิร์ฟเวอร์ให้ตรงกับโดเมนที่ต้องการส่งได้หรือไม่" หากคุณหมายความว่าฉันควรทำเพื่อที่ว่าเมื่อฉันพิมพ์ "ชื่อโฮสต์" บนบรรทัดคำสั่งเพื่อให้มันส่งออก mydomain.com ฉันได้ตั้งค่าไว้แล้ว และฉันมีชุดระเบียน SPF สำหรับโดเมนฉันได้กล่าวถึงคำถามที่ฉันมี SPF และ DKIM ตั้งค่าและทำงานได้สำเร็จ (ฉันเห็นรหัสผ่านสำหรับส่วนหัวอีเมลของฉัน)
Zero Wing

พบโพสต์ที่อาจช่วยแนะนำสิ่งต่อไปนี้: ในการเปลี่ยนซองจดหมาย "จาก" ที่อยู่ในยูนิกซ์คุณต้องระบุตัวเลือก "-r" เป็นไบนารี sendmail ของคุณ คุณสามารถทำได้ทั้งโลกใน php.ini โดยเพิ่มตัวเลือก "-r" ไปยังบรรทัดคำสั่ง "sendmail_path" แหล่งที่มา: stackoverflow.com/questions/5666312/…
โจ

ฉันพยายามเพิ่ม "-r" ใน "sendmail_path" ใน php.ini ของฉัน แต่ดูเหมือนว่าจะทำลายบางสิ่งบางอย่างเนื่องจากจดหมายหยุดส่งจากเซิร์ฟเวอร์ทันทีทันใด โดยเฉพาะอย่างยิ่งฉันเปลี่ยนบรรทัดเป็น --- sendmail_path = / usr / sbin / sendmail -t -i -r mail@mydomain.com แต่ก็ยังใช้งานไม่ได้ (ฉันพยายามด้วยและไม่มีเครื่องหมายคำพูดและยังทำให้ โปรดแน่ใจว่าได้รีสตาร์ทเซิร์ฟเวอร์ แต่ไม่มีลูกเต๋าและฉันไม่แน่ใจว่าสิ่งใดที่ทำให้ไม่สามารถส่งอีเมลได้หลังจากนั้น)
Zero Wing

3

ในการดูการกำหนดค่าของคุณดูเหมือนว่ามีสองสามบิตที่ขาดหายไป (และขออภัยสำหรับไวยากรณ์ของฉันฉันไม่ได้โพสต์บ่อย):

คุณอาจต้องการเพิ่มตัวเลือกการกำหนดค่า MASQUERADE_DOMAIN เพื่อไปกับ MASQUERADE_AS โดยจับคู่ MASQUERADE_DOMAIN กับสิ่งที่ FQDN ของโฮสต์คือ (ชื่อโฮสต์ -f บนแพลตฟอร์ม Linux ส่วนใหญ่) ฉันเคยทำสิ่งแปลก ๆ ถ้าพวกเขาไม่ได้อยู่ที่นั่นทั้งสองดังนั้นมันจะเป็น:

MASQUERADE_AS(`mydomain.com')dnl
MASQUERADE_DOMAIN(`fqdnname.internal')dnl

แล้วบรรทัดนี้:

dnl define(`confDOMAIN_NAME', `mydomain.com')dnl

ควรจะเป็นจริง

define(`confDOMAIN_NAME', `mydomain.com')dnl

หรือจะถูกละเว้นโดยคำสั่ง make / hash เมื่อคุณอัพเดตไฟล์ sendmail.cf ผู้ชายคนนี้ให้คำอธิบายที่ดีว่าเหตุใดความแตกต่างระหว่าง "dnl" และ "dnl #" ในไฟล์ sendmail.mc คืออะไร

ฉันยังคงพยายามกำจัดส่วน "apache" ในเซิร์ฟเวอร์ของฉันเอง แต่ฉันหวังว่านี่จะทำให้คุณใกล้ชิดขึ้นเล็กน้อย!


1

ระบบ -> การกำหนดค่า -> ขั้นสูง -> ระบบ -> ตั้งค่าเส้นทางกลับ -> ใช่

หรือตั้งเป็นอีเมลที่คุณต้องการใช้ เพิ่งพบสิ่งนี้ในวันนี้ - เห็นได้ชัดว่าอีเมลบางฉบับได้รับการปฏิเสธจากผู้ให้บริการอีเมลด้วยกฎที่เข้มงวด (. edu, .gov ... ฯลฯ )


เสียเวลาหลายชั่วโมงในการพยายามคิดออกว่าเหตุใดระเบียน SPF ของเราจึงถูกเพิกเฉยและอีเมลยังคงถูกตั้งค่าสถานะเป็นหัวหมุนเมื่อส่งจากเว็บไซต์ของเราถึงเรา มีลางสังหรณ์เป็นส่วนหัวที่ได้รับจากซึ่งทำให้ฉันที่นี่ โซลูชัน 30 วินาทีของคุณทำงานได้ทันทีและหมดความหงุดหงิดนานนับชั่วโมง! ทางออกที่ง่ายที่สุดสำหรับปัญหานี้ & Magento ในหน้านี้ แนะนำให้คุณลองทำสิ่งนี้ก่อนที่จะแก้ไขการกำหนดค่าเซิร์ฟเวอร์ของคุณ
Ashley Swatton

ฉันขอแนะนำให้ปิดบริการอีเมลที่ใช้เซิร์ฟเวอร์อย่างสมบูรณ์และเพียงแค่ใช้ปลั๊กอิน Sparkpost + smtpPro ทำงานเหมือนจับใจกับ 100,000 อีเมล / เดือนฟรี
Kalvin Klien

1

เพิ่มdefine(`confRECEIVED_HEADER', `internal info removed')dnlไปsubmit.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; $bby 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.