Mein Setup: Ich betreibe eine Magento-Website auf einem Amazon Linux-Server (der im Grunde CentOS zu sein scheint) mit einem Apache-Webserver. Ich verwende Google Apps auch zum Verwalten der E-Mails von mydomain.com.
Ich konnte die MX-, SPF- und DKIM-Einträge für den Server erfolgreich einrichten und zum Laufen bringen, sodass ich beim Senden von E-Mails einen "Pass" für SPF und DKIM erhalte. Ich bin jedoch auf ein seltsames Problem gestoßen, an dem ich scheinbar nicht vorbeikomme. Ein Teil des Headers für die von mir gesendeten E-Mails scheint immer zu sagen:
Received: (from apache@localhost) by mydomain.com
Ich habe hoch und niedrig nach einer Möglichkeit gesucht, dies zu ändern und stattdessen "[email protected]" zu verwenden, aber ich kann es einfach nicht herausfinden.
Unter anderem habe ich versucht:
- Ändern Sie die php.ini in: / usr / sbin / sendmail -t -i -f [email protected]
- Fügen Sie dem virtuellen Host von mydomain.conf die folgende Zeile hinzu: ServerAdmin [email protected]
- Setzen Sie den Rückweg im Magento-Backend auf "Ja" (System -> Konfiguration -> Erweitert -> System -> Mail-Sendeeinstellungen.
Wenn es hilft, ist der Inhalt meiner / etc / hosts-Datei wie folgt:
127.0.0.1 www.mydomain.com
127.0.0.1 mydomain.com
127.0.0.1 localhost localhost.localdomain
Für die letzte Zeile der Hosts-Datei habe ich auch die Variation ausprobiert ...
127.0.0.1 localhost.localdomain mydomain.com
... aber es hat immer noch nicht funktioniert.
Ich dachte, es könnte auch hilfreich sein, wenn ich die Überschriften der E-Mail hinzufüge, falls dies Hinweise darauf geben könnte, was möglicherweise vor sich geht (ich habe viele Werte geändert, um sie verallgemeinert zu halten).
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
Ein Teil von mir ist sich nicht sicher, ob dies normal ist, und ich glaube, ich bin nicht sicher, was dazu führen könnte, dass der Apache @ localhost erscheint, aber wenn jemand eine Idee hat, wäre er sehr dankbar, danke!
Bearbeiten Der von mir verwendete MTA ist Sendmail. Hier sind die Konfigurationsänderungen, die ich an der Datei sendmail.mc vorgenommen habe, um sie für meine Site zu berücksichtigen.
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
Bearbeiten Ich bin mir nicht sicher, ob diese Frage erneut als Duplikat markiert wurde. Daher dachte ich, ich sollte die Argumentation hervorheben, warum sie nicht auf der genannten Frage basiert, warum dies nicht der Fall ist. Der Wechsel zu Postfix ist keine Lösung, sondern eine Problemumgehung. Ich würde es hassen, all das Setup, das ich bisher mit Sendmail gemacht habe, zu entwurzeln, nur um auf andere potenzielle Probleme zu stoßen, die versuchen, Postfix zum Laufen zu bringen. Ich habe auch bereits erwähnt, dass der Befehl sendmail in der php.ini bearbeitet wird, wenn Sie die oben genannten Aufzählungspunkte lesen.
Bearbeiten Ich dachte, ich könnte genauso gut einige der anderen Dinge erwähnen, die ich versucht habe und die nicht funktionierten. Ich habe meiner sendmail.mc die folgenden Zeilen hinzugefügt:
FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
Ich habe dann eine Generics-Domains-Datei mit der einzelnen Zeile "mydomain.com" erstellt. Dann habe ich eine genericstable-Datei mit der einzelnen Zeile "apache [email protected]" erstellt. Ich habe make im Mail-Verzeichnis ausgeführt, die CF-Datei neu erstellt und sendmail neu gestartet, aber keine Würfel.
Ich habe versucht, die Datei / etc / aliases zu bearbeiten. Ich habe versucht, die Zeile "apache: root" in "apache: root, mail @ mydomain.com" sowie nur "apache: [email protected]" zu ändern, aber das hat auch nichts bewirkt.
Ich habe auch versucht, der Datei / etc / mail / virtuserstable die einzelne Zeile "apache @ localhost [email protected]" hinzuzufügen. Das hat auch nichts gebracht.
Ich bin überrascht, wie frustrierend es ist, wenn dies richtig funktioniert. Ich bin so nah dran, es dort zu haben, wo ich es brauche, aber ich weiß ehrlich gesagt nicht, wo ich suchen soll, um die Zeile "apache @ localhost" zu ersetzen.
quelle
Antworten:
Die Absender-E-Mail-Adresse ist der Benutzer des Dämons, der das Senden der Nachricht (Apache) unter dem in Ihrem MTA konfigurierten Domänennamen (entweder sendmail oder postfix) angefordert hat.
Wenn Ihr lokaler MTA Postfix ist, müssen Sie die myorigin-Einstellung ändern (in diesem Beispiel standardmäßig der konfigurierte Hostname. Localhost). Diese Einstellung befindet sich in der Datei main.cf (Standardspeicherort in den meisten Distributionen ist
/etc/postfix/main.cf
). Ändern Sie dies einfach in den Domainnamen, von dem es gesendet werden soll. Starten Sie dann postfix neu.Natürlich kann es für Sie einfacher sein, den Hostnamen des Servers so zu ändern, dass er mit der gewünschten sendenden Domäne übereinstimmt.
Beachten Sie, dass Sie, wenn Sie E-Mails von diesem Server für diese Domain senden möchten, einen SPF-DNS-Eintrag hinzufügen möchten, der dies zulässt. Andernfalls werden Ihre Nachrichten wahrscheinlich von Spam-Filtern gelöscht.
quelle
Beim Durchsuchen Ihrer Konfiguration scheinen ein paar Bits zu fehlen (und ich entschuldige mich für meine Syntax, ich poste nicht oft):
Sie möchten wahrscheinlich die Konfigurationsoption MASQUERADE_DOMAIN hinzufügen, die zu MASQUERADE_AS passt, und die MASQUERADE_DOMAIN mit dem FQDN des Hosts abgleichen (Hostname -f auf den meisten Linux-Plattformen). Ich habe es seltsame Dinge tun lassen, wenn sie nicht beide da sind, also wäre es:
und dann diese Zeile:
Sollte wirklich sein
oder es wird von den Befehlen make / hash ignoriert, wenn Sie die Datei sendmail.cf aktualisieren. Dieser Typ gibt eine großartige Erklärung, warum Was ist der Unterschied zwischen "dnl" und "dnl #" in einer sendmail.mc-Datei?
Ich versuche immer noch, den "Apache" -Teil auf meinem eigenen Server loszuwerden, aber ich hoffe, das bringt dich ein bisschen näher!
quelle
System -> Konfiguration -> Erweitert -> System -> Rückgabepfad festlegen -> Ja
oder setzen Sie es auf E-Mail, die Sie verwenden möchten. Ich habe das heute gefunden - anscheinend wurden einige der E-Mails von Mailservern mit strengen Regeln (.edu, .gov ... usw.) abgelehnt.
quelle
Hinzufügen,
define(`confRECEIVED_HEADER', `internal info removed')dnl
umsubmit.mc
dann eine.cf
Datei zu generieren undsendmail
wie gewohnt neu zu starten .Wichtig: Die Datei, die bearbeitet werden sollte, damit dies funktioniert, ist
submit.mc
und NICHTsendmail.mc
. Wenn Siesendmail.mc
stattdessen die Datei bearbeiten , wird derReceived
Header über dem von Ihnen erwähnten geändert (dhReceived: from mydomain.com (www.mydomain.com [127.0.0.1])
).Hinweis: Anstelle der Zeichenkette
internal info removed
Sie zur Verfügung gestellt einige der Informationen wieder verwenden können , während die empfindlichen ein Versteck, zum Beispiel:by $j id $i; $b
zu erhaltenby DOMAIN id ID; TIMESTAMP
.Das Obige entfernt / ersetzt die Informationen nach dem von
Received
Ihnen erwähnten Header:Siehe auch ähnliche Frage: So entfernen Sie Received: (von apache @ localhost) und sendmail-Version aus Headern
quelle