Menghapus apache @ localhost dari header email?

11

Pengaturan saya: Saya menjalankan situs web Magento di server Amazon Linux (yang tampaknya pada dasarnya adalah CentOS) dengan server web Apache. Saya juga menggunakan Google Apps untuk mengelola email mydomain.com.

Saya berhasil mengatur data MX, SPF dan DKIM untuk server dan membuatnya berfungsi, sehingga saya menerima "Lulus" untuk SPF dan DKIM ketika saya mengirim email. Namun, saya mengalami masalah aneh yang sepertinya tidak bisa saya lewati --- bagian dari tajuk email yang saya kirim sepertinya selalu mengatakan:

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

Saya telah mencari tinggi dan rendah untuk cara mengubah ini menggunakan "[email protected]", tetapi saya sepertinya tidak bisa mengetahuinya.

Di antara hal-hal yang pernah saya coba:

  • Mengubah php.ini menjadi: / usr / sbin / sendmail -t -i -f [email protected]
  • Menambahkan ke virtualline mydomain.conf baris: ServerAdmin [email protected]
  • Mengatur Jalur Kembali ke "Ya" di backend Magento (Sistem -> Konfigurasi -> Lanjutan -> Sistem -> Pengaturan Pengiriman Surat.

Jika ini membantu, isi file / etc / hosts saya adalah sebagai berikut:

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

Untuk baris terakhir dari file hosts, saya juga mencoba variasi ...

127.0.0.1   localhost.localdomain mydomain.com

... tapi masih tidak berhasil.

Saya pikir mungkin juga membantu jika saya menambahkan tajuk email, dalam kasus yang mungkin memberikan beberapa petunjuk tentang apa yang mungkin terjadi (saya telah mengubah banyak nilai agar tetap digeneralisasi).

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

Sebagian dari saya tidak yakin apakah ini normal, dan saya kira saya tidak yakin apa yang menyebabkan apache @ localhost muncul, tetapi jika ada yang punya ide itu akan sangat dihargai, terima kasih!

Sunting MTA yang saya gunakan adalah Sendmail. Berikut adalah perubahan konfigurasi yang saya buat pada file sendmail.mc untuk mengakomodasi situs saya.

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

Sunting Saya tidak yakin apakah pertanyaan ini ditandai sebagai duplikat lagi, jadi saya pikir saya harus menekankan alasan mengapa tidak didasarkan pada pertanyaan yang dirujuk tentang mengapa tidak. Beralih ke Postfix bukan merupakan solusi, namun merupakan solusi. Saya akan benci untuk mencabut semua pengaturan yang telah saya lakukan dengan Sendmail sejauh ini hanya untuk menghadapi masalah potensial lainnya yang mencoba membuat Postfix berfungsi. Saya juga sudah menyebutkan mengedit perintah sendmail di php.ini, jika Anda membaca poin-poin yang saya sebutkan di atas.

Sunting Saya pikir saya mungkin juga menyebutkan beberapa hal lain yang saya coba lakukan yang tidak berhasil. Saya menambahkan ke sendmail saya. Baris berikut:

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

Saya kemudian membuat file generik-domain dengan satu baris "mydomain.com" di dalamnya. Kemudian, saya membuat file genericstable dengan baris tunggal "apache [email protected]" di dalamnya. Saya menjalankan make di direktori mail, membuat ulang file cf, dan me-restart sendmail, tetapi tidak ada dadu.

Saya mencoba mengedit file / etc / aliases. Saya mencoba mengubah baris "apache: root" untuk mengatakan "apache: root, mail @ mydomain.com", dan juga hanya "apache: [email protected]", tetapi itu tidak melakukan apa-apa juga.

Saya juga mencoba menambahkan ke file / etc / mail / virtuserstable baris tunggal "apache @ localhost [email protected]". Itu juga tidak melakukan apa-apa.

Saya terkejut betapa frustrasinya membuat ini berfungsi dengan baik. Saya sangat dekat untuk memilikinya di mana saya membutuhkannya, tapi jujur ​​saya tidak tahu di mana harus mencari untuk mendapatkan baris "apache @ localhost" diganti.

Zero Wing
sumber
Yah untuk satu, solusi untuk pertanyaan-pertanyaan itu tidak berhasil untuk saya. Solusi pertama bermuara pada "Saya tidak tahu cara mendapatkan sendmail untuk bekerja, jadi saya menyerah dan beralih ke postfix sebagai gantinya". Itu bukan solusi untuk masalah ini, ini adalah solusi. Solusi kedua, untuk menambahkan servername ke file hosts, juga tidak bekerja untuk saya --- jadi pada dasarnya masalah yang saya alami pasti berbeda. Dan bukan berarti saya bisa menunggu seseorang untuk menambahkan solusi lain yang bisa diterapkan untuk pertanyaan yang sudah berusia lebih dari 2 tahun.
Zero Wing

Jawaban:

4

Alamat email from adalah pengguna daemon yang meminta pesan untuk dikirim (apache) @ nama domain yang dikonfigurasi dalam MTA Anda (baik sendmail atau postfix).

Jika MTA lokal Anda adalah postfix, Anda perlu mengubah pengaturan myorigin (yang default ke nama host yang dikonfigurasi. Localhost dalam contoh ini). Pengaturan ini ada di main.cf (lokasi default di sebagian besar distribusi adalah /etc/postfix/main.cf). Ubah saja ke nama domain yang Anda inginkan untuk mengirimnya. Kemudian mulai kembali postfix.

Tentu saja, mungkin lebih mudah bagi Anda untuk hanya mengubah nama host server agar sesuai dengan domain pengiriman yang diinginkan.

Perlu diingat, bahwa jika Anda akan mengirim email dari server ini untuk domain itu, Anda akan ingin menambahkan catatan DNS SPF memungkinkan, jika tidak, pesan Anda kemungkinan akan dibuang oleh filter spam.

Joe
sumber
Hai, MTA saya sebenarnya adalah sendmail, meskipun saya pikir saya telah membuat semua penyesuaian yang mungkin untuk itu yang dapat dibuat (saya akan mencoba menambahkan beberapa perubahan itu ke pertanyaan saya). Bisakah Anda juga mengklarifikasi "mengubah nama host server agar sesuai dengan domain pengiriman yang diinginkan?" Jika Anda maksud saya harus membuatnya sehingga ketika saya mengetik "hostname" pada baris perintah sehingga output mydomain.com, saya sudah mengaturnya. Dan juga, saya memiliki catatan SPF yang ditetapkan untuk domain, saya sebutkan dalam pertanyaan bahwa saya memiliki SPF dan DKIM yang mengatur dan bekerja dengan sukses (Saya melihat pass untuk keduanya di header email saya).
Zero Wing
Menemukan posting yang mungkin membantu menyarankan hal berikut: Untuk mengubah alamat "dari" amplop di unix, Anda menentukan opsi "-r" ke biner sendmail Anda. Anda dapat melakukan ini secara global di php.ini dengan menambahkan opsi "-r" ke baris perintah "sendmail_path". sumber: stackoverflow.com/questions/5666312/...
Joe
Saya mencoba menambahkan "-r" ke "sendmail_path" di php.ini saya, tetapi ini sepertinya memecah sesuatu, karena surat tiba-tiba berhenti mengirim keluar dari server. Lebih khusus lagi, saya mengubah baris ke --- sendmail_path = / usr / sbin / sendmail -t -i -r [email protected], tetapi masih tidak berfungsi (saya mencoba dengan dan tanpa tanda kutip, dan juga membuat yakin untuk me-restart server, tetapi tidak ada dadu, dan saya tidak yakin apa yang mencegahnya mengirim email setelah titik itu).
Zero Wing
3

Dalam melihat konfigurasi Anda, sepertinya ada beberapa bit yang hilang (dan maaf atas sintaks saya, saya tidak sering memposting):

Anda mungkin ingin menambahkan opsi konfigurasi MASQUERADE_DOMAIN untuk digunakan dengan MASQUERADE_AS, mencocokkan MASQUERADE_DOMAIN dengan apa pun FQDN host (nama host -f pada kebanyakan platform linux). Aku sudah melakukan hal-hal aneh jika mereka tidak ada di sana, jadi itu akan menjadi:

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

dan kemudian baris ini:

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

Harusnya benar

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

atau itu akan diabaikan oleh perintah make / hash ketika Anda memperbarui file sendmail.cf. Orang ini memberikan penjelasan yang bagus tentang mengapa Apa perbedaan antara "dnl" dan "dnl #" dalam file sendmail.mc?

Saya masih mencoba untuk menyingkirkan bagian "apache" di server saya sendiri, tetapi saya harap ini membuat Anda sedikit lebih dekat!

LiquidLight
sumber
1

System -> Configuration -> Advanced -> System -> Set Return-Path -> Ya

atau atur ke email yang ingin Anda gunakan. Baru saja menemukan ini hari ini - ternyata beberapa email ditolak oleh mailservers dengan aturan ketat (.edu, .gov ... dll)

Kalvin Klien
sumber
Berjam-jam mencoba untuk mencari tahu mengapa catatan SPF kami diabaikan dan email masih ditandai sebagai palsu ketika dikirim dari situs kami kepada kami. Punya firasat itu adalah header Received-From yang membawa saya ke sini. Solusi 30 detik Anda bekerja secara instan dan mengakhiri frustrasi selama berjam-jam! Solusi paling sederhana untuk masalah ini & Magento di halaman ini. Sarankan Anda mencoba ini terlebih dahulu sebelum mengubah konfigurasi server Anda.
Ashley Swatton
Saya merekomendasikan sepenuhnya mematikan layanan email berbasis server dan hanya menggunakan plugin Sparkpost + smtpPro. Bekerja seperti pesona dengan 100.000 email / bulan gratis.
Kalvin Klien
1

Tambah define(`confRECEIVED_HEADER', `internal info removed')dnluntuk submit.mckemudian menghasilkan .cffile dan restart sendmailseperti biasa.

Penting: file yang harus diedit agar ini berfungsi adalah submit.mc, dan BUKAN sendmail.mc. Jika Anda mengedit sendmail.mcfile sebagai gantinya, Receivedheader di atas yang Anda sebutkan akan menjadi yang dimodifikasi (yaitu Received: from mydomain.com (www.mydomain.com [127.0.0.1])).

Catatan: Alih-alih string literal internal info removedAnda dapat menggunakan kembali beberapa info yang diberikan saat menyembunyikan yang sensitif, misalnya: by $j id $i; $buntuk mendapatkan by DOMAIN id ID; TIMESTAMP.

Di atas akan menghapus / mengganti informasi setelah Receivedtajuk yang Anda sebutkan:

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

Lihat juga pertanyaan serupa: Cara menghapus Received: (from apache @ localhost) dan versi sendmail dari header

Chris Dev
sumber