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: [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
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:[email protected]')
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 [email protected]” 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: [email protected]”, 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”.
źródło
Odpowiedzi:
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.
źródło
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:
a następnie ta linia:
Naprawdę powinno być
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ę!
źródło
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.)
źródło
Dodaj
define(`confRECEIVED_HEADER', `internal info removed')dnl
dosubmit.mc
następnie wygenerować.cf
plik i restartsendmail
jak zwykle.Ważne: plik, który należy edytować, aby to zadziałało, to
submit.mc
NIE, a NIEsendmail.mc
. Jeślisendmail.mc
zamiast tego edytujesz plik,Received
nagłówek nad tym, o którym wspomniałeś, będzie zmodyfikowany (to znaczyReceived: from mydomain.com (www.mydomain.com [127.0.0.1])
).Uwaga: Zamiast dosłownego ciągu
internal info removed
możesz ponownie użyć niektórych informacji podanych podczas ukrywania wrażliwego, na przykład:by $j id $i; $b
getby DOMAIN id ID; TIMESTAMP
.Powyższe spowoduje usunięcie / zastąpienie informacji po wspomnianym
Received
nagłówku:Zobacz także podobne pytanie: Jak usunąć Odebrano: (z apache @ localhost) i wersję sendmaila z nagłówków
źródło