Loại bỏ apache @ localhost khỏi tiêu đề email?


11

Thiết lập của tôi: Tôi đang chạy một trang web Magento trên máy chủ Amazon Linux (có vẻ cơ bản là CentOS) với máy chủ web Apache. Tôi cũng sử dụng Google Apps để quản lý thư của mydomain.com.

Tôi đã có thể thiết lập thành công các bản ghi MX, SPF và DKIM cho máy chủ và khiến chúng hoạt động, để tôi nhận được "Đạt" cho cả SPF và DKIM khi tôi gửi email. Tuy nhiên, tôi đã gặp phải một vấn đề kỳ lạ mà tôi dường như không thể vượt qua --- một phần của tiêu đề cho các email tôi gửi dường như luôn luôn nói:

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

Tôi đã tìm kiếm cao và thấp để tìm cách thay đổi điều này để sử dụng "mail@mydomain.com", nhưng tôi dường như không thể tìm ra nó.

Trong số những điều tôi đã thử:

  • Thay đổi php.ini thành: / usr / sbin / sendmail -t -i -f mail@mydomain.com
  • Thêm vào máy chủ ảo mydomain.conf của dòng: ServerAdmin mail@mydomain.com
  • Đặt Đường dẫn trả về thành "Có" trong phụ trợ Magento (Hệ thống -> Cấu hình -> Nâng cao -> Hệ thống -> Cài đặt gửi thư.

Nếu nó giúp, nội dung của tệp / etc / hosts của tôi như sau:

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

Đối với dòng cuối cùng của tệp máy chủ, tôi cũng đã thử biến thể ...

127.0.0.1   localhost.localdomain mydomain.com

... nhưng nó vẫn không hoạt động.

Tôi nghĩ rằng nó cũng có thể hữu ích nếu tôi thêm các tiêu đề của email, trong trường hợp có thể đưa ra một số manh mối cho những gì có thể xảy ra (Tôi đã thay đổi rất nhiều giá trị để giữ cho nó được khái quát).

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

Một phần trong tôi không chắc điều này có bình thường không và tôi đoán tôi không chắc điều gì có thể khiến apache @ localhost xuất hiện, nhưng nếu có ai có ý tưởng thì nó sẽ được đánh giá cao, cảm ơn bạn!

Chỉnh sửa MTA tôi đang sử dụng là Sendmail. Dưới đây là những thay đổi cấu hình tôi đã thực hiện đối với tệp sendmail.mc để phù hợp với trang web của mình.

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

Chỉnh sửa Tôi không chắc chắn nếu câu hỏi này được đánh dấu lại một lần nữa, vì vậy tôi nghĩ tôi nên nhấn mạnh lý do tại sao nó không dựa trên câu hỏi được đề cập là tại sao nó không. Chuyển sang Postfix không phải là một giải pháp, nhiều như một cách giải quyết. Tôi ghét phải nhổ tất cả các thiết lập mà tôi đã thực hiện với Sendmail cho đến nay chỉ gặp phải các vấn đề tiềm ẩn khác khi cố gắng để Postfix hoạt động thay thế. Tôi cũng đã đề cập đến việc chỉnh sửa lệnh sendmail trong php.ini, nếu bạn đọc các dấu đầu dòng tôi đã đề cập ở trên.

Chỉnh sửa Tôi hình dung tôi cũng có thể đề cập đến một số điều khác mà tôi đã thử làm mà không hiệu quả. Tôi đã thêm vào sendmail.mc của mình các dòng sau:

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

Sau đó, tôi đã tạo một tệp tên miền chung với một dòng "mydomain.com" bên trong nó. Sau đó, tôi đã tạo một tệp ổn định chung với một dòng "apache mail@homebrewsupply.com" bên trong nó. Tôi đã chạy make trong thư mục mail, tạo lại tệp cf và khởi động lại sendmail, nhưng không có xúc xắc.

Tôi đã thử chỉnh sửa tập tin / etc / aliases. Tôi đã thử thay đổi dòng "apache: root" để nói "apache: root, mail @ mydomain.com", cũng như chỉ "apache: mail@mydomain.com", nhưng điều đó cũng không làm được gì.

Tôi cũng đã thử thêm vào tập tin / etc / mail / virtuser Ổn định một dòng "apache @ localhost mail@mydomain.com". Điều đó cũng không làm gì cả.

Tôi ngạc nhiên về sự bực bội của nó để làm cho điều này hoạt động đúng. Tôi rất gần có nó ở nơi tôi cần, nhưng thật lòng tôi không biết nên tìm ở đâu để thay thế dòng "apache @ localhost".



Đối với một người, các giải pháp cho những câu hỏi đó không hiệu quả với tôi. Giải pháp đầu tiên rút gọn thành "Tôi không thể tìm ra cách để sendmail hoạt động, vì vậy tôi đã từ bỏ và chuyển sang postfix thay thế". Đó không phải là một giải pháp cho vấn đề, đó là một cách giải quyết. Giải pháp thứ hai, để thêm tên máy chủ vào tệp máy chủ, cũng không hoạt động đối với tôi --- vì vậy về cơ bản, vấn đề tôi gặp phải phải khác. Và nó không giống như tôi có thể đợi ai đó thêm các giải pháp khả thi khác cho các câu hỏi đã hơn 2 tuổi.
Không cánh

Câu trả lời:


4

Địa chỉ email là người dùng của daemon đã gọi cho tin nhắn được gửi (apache) @ tên miền được định cấu hình trong MTA của bạn (có thể là sendmail hoặc postfix).

Nếu MTA cục bộ của bạn là postfix, bạn cần thay đổi cài đặt myorigin (mặc định là tên máy chủ được cấu hình. Localhost trong ví dụ này). Cài đặt này nằm trong main.cf (vị trí mặc định trong hầu hết các bản phân phối là /etc/postfix/main.cf). Chỉ cần thay đổi tên miền mà bạn muốn gửi. Sau đó khởi động lại postfix.

Tất nhiên, có thể dễ dàng hơn cho bạn khi chỉ cần thay đổi tên máy chủ của máy chủ để phù hợp với miền gửi mong muốn.

Hãy nhớ rằng, nếu bạn định gửi email từ máy chủ này cho tên miền đó, bạn sẽ muốn thêm bản ghi DNS SPF cho phép, nếu không, thư của bạn có thể sẽ bị xóa bởi các bộ lọc thư rác.


Xin chào, MTA của tôi thực sự là sendmail, mặc dù tôi nghĩ rằng tôi đã thực hiện tất cả các điều chỉnh có thể thực hiện được (tôi sẽ thử thêm một số thay đổi trong câu hỏi của mình). Bạn cũng có thể làm rõ về "thay đổi tên máy chủ của máy chủ để phù hợp với miền gửi mong muốn?" Nếu bạn muốn nói tôi nên làm điều đó để khi tôi gõ "tên máy chủ" trên dòng lệnh để nó xuất ra mydomain.com, thì tôi đã thiết lập nó. Ngoài ra, tôi có một bản ghi SPF cho tên miền, tôi đã đề cập trong câu hỏi rằng tôi đã thiết lập SPF và DKIM và hoạt động thành công (tôi thấy một đường chuyền cho cả hai trong tiêu đề email của tôi).
Không cánh

Tìm thấy một bài đăng có thể giúp gợi ý những điều sau: Để thay đổi địa chỉ "từ" trên unix, bạn chỉ định tùy chọn "-r" cho tệp nhị phân sendmail của mình. Bạn có thể thực hiện việc này trên toàn cầu trong php.ini bằng cách thêm tùy chọn "-r" vào dòng lệnh "sendmail_path". nguồn: stackoverflow.com/questions/5666312/ khăn
Joe

Tôi đã thử thêm "-r" vào "sendmail_path" trong php.ini của mình, nhưng điều này dường như phá vỡ một cái gì đó, vì thư đột nhiên ngừng gửi từ máy chủ. Cụ thể hơn, tôi đã thay đổi dòng thành --- sendmail_path = / usr / sbin / sendmail -t -i -r mail@mydomain.com, nhưng nó vẫn không hoạt động (Tôi đã thử và không có dấu ngoặc kép, và cũng đã thực hiện chắc chắn khởi động lại máy chủ, nhưng không có xúc xắc, và tôi không chắc điều gì đã ngăn không cho nó gửi email sau thời điểm đó).
Không cánh

3

Khi xem qua cấu hình của bạn, có vẻ như có một vài bit bị thiếu (và xin lỗi vì cú pháp của tôi, tôi không đăng thường xuyên):

Bạn có thể muốn thêm tùy chọn cấu hình MASQUERADE_DOMAIN đi cùng với MASQUERADE_AS, khớp với MASQUERADE_DOMAIN với bất kỳ FQDN nào của máy chủ lưu trữ (tên máy chủ -f trên hầu hết các nền tảng linux). Tôi đã có nó làm những điều kỳ lạ nếu cả hai không ở đó, vì vậy nó sẽ là:

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

và sau đó dòng này:

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

Nên thực sự

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

hoặc nó sẽ bị bỏ qua bởi các lệnh make / hash khi bạn cập nhật tệp sendmail.cf. Anh chàng này đưa ra một lời giải thích tuyệt vời về lý do tại sao sự khác biệt giữa "dnl" và "dnl #" trong tệp sendmail.mc là gì?

Tôi vẫn đang cố gắng để thoát khỏi phần "apache" trong máy chủ của riêng tôi, nhưng tôi hy vọng điều này sẽ giúp bạn gần hơn một chút!


1

Hệ thống -> Cấu hình -> Nâng cao -> Hệ thống -> Đặt Đường dẫn trả về -> Có

hoặc đặt nó vào email mà bạn muốn sử dụng. Chỉ cần tìm thấy điều này ngày hôm nay - rõ ràng một số email đã bị từ chối bởi những người gửi thư với các quy tắc nghiêm ngặt (.edu, .gov ... vv)


Đã lãng phí hàng giờ để cố gắng tìm ra lý do tại sao các bản ghi SPF của chúng tôi bị bỏ qua và e-mail vẫn bị gắn cờ là giả mạo khi được gửi từ trang web của chúng tôi cho chúng tôi. Có một linh cảm đó là tiêu đề Nhận-Từ dẫn tôi đến đây. Giải pháp 30 giây của bạn đã hoạt động ngay lập tức và chấm dứt hàng giờ thất vọng! Giải pháp đơn giản nhất cho vấn đề này & Magento trên trang này. Đề nghị bạn thử điều này trước khi thay đổi cấu hình máy chủ của bạn.
Ashley Swatton

Tôi khuyên bạn nên tắt hoàn toàn dịch vụ email dựa trên máy chủ và chỉ sử dụng plugin Sparkpost + smtpPro. Hoạt động như một cơ duyên với 100.000 email / tháng miễn phí.
Kalvin Klien

1

Thêm define(`confRECEIVED_HEADER', `internal info removed')dnlvào submit.mcsau đó tạo .cftập tin và khởi động lại sendmailnhư bình thường.

Quan trọng: tập tin nên được chỉnh sửa để làm việc này submit.mcvà KHÔNG sendmail.mc. Nếu bạn chỉnh sửa sendmail.mctệp thay vào đó, Receivedtiêu đề phía trên cái bạn đã đề cập sẽ là cái được sửa đổi (nghĩa là Received: from mydomain.com (www.mydomain.com [127.0.0.1])).

Lưu ý: Thay vì chuỗi ký tự, internal info removedbạn có thể sử dụng lại một số thông tin được cung cấp trong khi ẩn chuỗi nhạy cảm, ví dụ: by $j id $i; $bđể lấy by DOMAIN id ID; TIMESTAMP.

Ở trên sẽ xóa / thay thế thông tin sau Receivedtiêu đề bạn đã đề cập:

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

Xem thêm câu hỏi tương tự: Cách xóa Nhận đã nhận: (từ apache @ localhost) và phiên bản sendmail từ các tiêu đề

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.