Usunąć apache @ localhost z nagłówków wiadomości e-mail?


11

Moja konfiguracja: prowadzę witrynę Magento na serwerze Amazon Linux (który w zasadzie wygląda na CentOS) z serwerem Apache. Korzystam także z Google Apps do zarządzania pocztą mydomain.com.

Udało mi się pomyślnie skonfigurować rekordy MX, SPF i DKIM dla serwera i sprawić, że działały, dzięki czemu otrzymuję „Pass” zarówno dla SPF, jak i DKIM, gdy wysyłam e-maile. Jednak natknąłem się na dziwny problem, którego nie mogę ominąć --- część nagłówka wysyłanych e-maili wydaje się zawsze mówić:

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

Szukałem wysokiego i niskiego sposobu, aby to zmienić, używając zamiast tego „mail@moja_domena.com”, ale po prostu nie mogę tego rozgryźć.

Między innymi próbowałem:

  • Zmienianie php.ini na: / usr / sbin / sendmail -t -i -f mail@moja_domena.com
  • Dodanie do wirtualnego hosta mydomain.conf linii: ServerAdmin mail@moja_domena.com
  • Ustawienie ścieżki powrotu na „Tak” w backendzie Magento (System -> Konfiguracja -> Zaawansowane -> System -> Ustawienia wysyłania poczty.

Jeśli to pomoże, zawartość mojego pliku / etc / hosts jest następująca:

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

W ostatnim wierszu pliku hosts wypróbowałem również odmianę ...

127.0.0.1   localhost.localdomain mydomain.com

... ale nadal nie działało.

Pomyślałem, że może to również pomóc, jeśli dodam nagłówki wiadomości e-mail, na wypadek, gdyby to mogło dać wskazówki co do tego, co może się dziać (zmieniłem wiele wartości, aby ją uogólnić).

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

Część mnie nie jest pewna, czy to normalne, i chyba nie jestem pewna, co może powodować pojawienie się apache @ localhost, ale jeśli ktoś ma pomysł, będzie bardzo wdzięczny, dziękuję!

Edytuj MTA, którego używam, to Sendmail. Oto zmiany konfiguracji, które wprowadziłem w pliku sendmail.mc w celu dostosowania go do mojej witryny.

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

Edytuj Nie jestem pewien, czy pytanie to zostało ponownie oznaczone jako duplikat, więc pomyślałem, że powinienem podkreślić powód, dla którego nie jest on oparty na zadanym pytaniu, dlaczego tak nie jest. Przejście na Postfix nie jest rozwiązaniem, a jedynie obejściem problemu. Nie chciałbym usuwać wszystkich ustawień, które przeprowadziłem do tej pory z Sendmailem, tylko po to, aby napotkać inne potencjalne problemy, próbując zamiast tego uruchomić Postfix. Wspomniałem już również o edycji polecenia sendmail w php.ini, jeśli czytasz punktory, o których wspomniałem powyżej.

Edycja Pomyślałem mogę również wspomnieć o niektórych innych rzeczy próbowałem robić, że nie działa. Dodałem do mojego sendmail.mc następujące linie:

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

Następnie utworzyłem plik domen ogólnych z pojedynczym wierszem „mydomain.com”. Następnie utworzyłem plik genericstable z pojedynczym wierszem „apache mail@homebrewsupply.com” w nim. Uruchomiłem make w katalogu mail, odtworzyłem plik cf i zrestartowałem sendmaila, ale żadnych kości.

Próbowałem edytować plik / etc / aliases. Próbowałem zmienić wiersz „apache: root” na „apache: root, mail @ mydomain.com”, a także po prostu „apache: mail@mydomain.com”, ale to też nic nie zrobiło.

Próbowałem również dodać do pliku / etc / mail / virtuserstable pojedynczą linię „apache @ localhost mail@moja_domena.com”. To też nic nie zrobiło.

Jestem zaskoczony, jak frustrujące jest prawidłowe działanie tego. Jestem tak blisko, że mam go tam, gdzie go potrzebuję, ale szczerze mówiąc, nie wiem, gdzie szukać, aby zastąpić wiersz „apache @ localhost”.



Po pierwsze, rozwiązania tych pytań nie działają dla mnie. Pierwsze rozwiązanie sprowadza się do: „Nie mogłem wymyślić, jak zmusić sendmaila do pracy, więc poddałem się i przełączyłem na postfiks”. To nie jest rozwiązanie problemu, to obejście. Drugie rozwiązanie, polegające na dodaniu nazwy serwera do pliku hosts, również nie działało dla mnie --- tak więc zasadniczo mój problem musi być inny. I to nie tak, że mogę czekać, aż ktoś doda inne praktyczne rozwiązania do pytań, które mają ponad 2 lata.
Zero Wing

Odpowiedzi:


4

Adres e-mail to użytkownik demona, który wezwał do wysłania wiadomości (apache) @ nazwa domeny skonfigurowana w MTA (sendmail lub postfix).

Jeśli twój lokalny MTA ma postfiks, musisz zmienić ustawienie myorigin (domyślnie skonfigurowana nazwa hosta. Localhost w tym przykładzie). To ustawienie znajduje się w main.cf (domyślna lokalizacja w większości dystrybucji to /etc/postfix/main.cf). Po prostu zmień to na nazwę domeny, z której chcesz go wysłać. Następnie uruchom ponownie postfiks.

Oczywiście może być łatwiej po prostu zmienić nazwę hosta serwera, aby pasowała do żądanej domeny wysyłającej.

Pamiętaj, że jeśli zamierzasz wysyłać wiadomości e-mail z tego serwera dla tej domeny, będziesz chciał dodać do tego rekord SPF DNS, w przeciwnym razie wiadomości zostaną zrzucone przez filtry antyspamowe.


Cześć, mój MTA to tak naprawdę sendmail, choć myślę, że wprowadziłem wszystkie możliwe poprawki, które można wprowadzić (spróbuję dodać niektóre z tych zmian do mojego pytania). Czy możesz również wyjaśnić „zmianę nazwy hosta serwera, aby pasował do żądanej domeny wysyłającej?” Jeśli masz na myśli, że powinienem to zrobić, aby po wpisaniu „nazwa hosta” w wierszu polecenia, tak aby wyświetlała się mojadomena.com, już to skonfigurowałem. A także mam zestaw rekordów SPF dla domeny, wspomniałem w pytaniu, że mam skonfigurowane i działające SPF i DKIM z powodzeniem (widzę hasło dla obu w nagłówkach e-maili).
Zero Wing

Znaleziono post, który może pomóc w sugerowaniu następujących rzeczy: Aby zmienić adres koperty „z” w systemie uniksowym, należy podać opcję „-r” w pliku binarnym sendmaila. Możesz to zrobić globalnie w php.ini, dodając opcję „-r” do wiersza poleceń „sendmail_path”. źródło: stackoverflow.com/questions/5666312/…
Joe

Próbowałem dodać „-r” do „sendmail_path” w moim php.ini, ale wydawało się, że coś to zepsuło, ponieważ poczta nagle przestała wysyłać z serwera. Mówiąc dokładniej, zmieniłem linię na --- sendmail_path = / usr / sbin / sendmail -t -i -r mail@mydomain.com, ale nadal nie działało (próbowałem ze znakami cudzysłowu i bez, a także zrobiłem koniecznie zrestartuj serwer, ale żadnych kości, i nie jestem pewien, co uniemożliwiło mu wysyłanie wiadomości e-mail po tym momencie).
Zero Wing

3

Podczas przeglądania konfiguracji wydaje się, że brakuje kilku bitów (i przepraszam za moją składnię, nie publikuję często):

Prawdopodobnie będziesz chciał dodać opcję konfiguracji MASQUERADE_DOMAIN, aby przejść do MASQUERADE_AS, dopasowując MASQUERADE_DOMAIN do dowolnej nazwy FQDN hosta (nazwa hosta -f na większości platform Linux). Kazałem to robić dziwne rzeczy, jeśli nie ma ich obu, więc byłoby to:

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

a następnie ta linia:

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

Naprawdę powinno być

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

lub zostanie zignorowany przez komendy make / hash podczas aktualizacji pliku sendmail.cf. Ten facet daje świetne wyjaśnienie, jaka jest różnica między „dnl” a „dnl #” w pliku sendmail.mc?

Wciąż próbuję pozbyć się części „apache” na własnym serwerze, ale mam nadzieję, że zbliży cię to trochę!


1

System -> Konfiguracja -> Zaawansowane -> System -> Ustaw ścieżkę powrotną -> Tak

lub ustaw na adres e-mail, którego chcesz użyć. Właśnie to znalazłem dzisiaj - najwyraźniej niektóre e-maile były odrzucane przez serwery pocztowe według ścisłych zasad (.edu, .gov ... itp.)


Zmarnowane godziny na ustalenie, dlaczego nasze rekordy SPF były ignorowane, a wiadomości e-mail były nadal oznaczane jako sfałszowane po wysłaniu z naszej witryny do nas. Miałem przeczucie, że doprowadził mnie tutaj nagłówek Received-From. Twoje 30 sekundowe rozwiązanie zadziałało natychmiast i położyło kres frustracji! Najprostsze rozwiązanie tego problemu i Magento na tej stronie. Zalecamy wypróbowanie tego przed zmianą konfiguracji serwera.
Ashley Swatton

Polecam całkowicie wyłączyć serwerową pocztę e-mail i po prostu użyć wtyczki Sparkpost + smtpPro. Działa jak urok dzięki 100 000 e-mailom miesięcznie za darmo.
Kalvin Klien

1

Dodaj define(`confRECEIVED_HEADER', `internal info removed')dnldo submit.mcnastępnie wygenerować .cfplik i restart sendmailjak zwykle.

Ważne: plik, który należy edytować, aby to zadziałało, to submit.mcNIE, a NIE sendmail.mc. Jeśli sendmail.mczamiast tego edytujesz plik, Receivednagłówek nad tym, o którym wspomniałeś, będzie zmodyfikowany (to znaczy Received: from mydomain.com (www.mydomain.com [127.0.0.1])).

Uwaga: Zamiast dosłownego ciągu internal info removedmożesz ponownie użyć niektórych informacji podanych podczas ukrywania wrażliwego, na przykład: by $j id $i; $bget by DOMAIN id ID; TIMESTAMP.

Powyższe spowoduje usunięcie / zastąpienie informacji po wspomnianym Receivednagłówku:

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

Zobacz także podobne pytanie: Jak usunąć Odebrano: (z apache @ localhost) i wersję sendmaila z nagłówków

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.