Ma configuration: j'exécute un site Web Magento sur un serveur Amazon Linux (qui semble être essentiellement CentOS) avec un serveur Web Apache. J'utilise également Google Apps pour gérer le courrier de mydomain.com.
J'ai réussi à configurer les enregistrements MX, SPF et DKIM pour le serveur et à les faire fonctionner, de sorte que je reçois un "Pass" pour SPF et DKIM lorsque j'envoie des e-mails. Cependant, j'ai rencontré un problème étrange que je n'arrive pas à surmonter --- une partie de l'en-tête des e-mails que j'envoie semble toujours dire:
Received: (from apache@localhost) by mydomain.com
J'ai cherché haut et bas un moyen de changer cela pour utiliser "[email protected]" à la place, mais je n'arrive pas à le comprendre.
Parmi les choses que j'ai essayées:
- Changer le php.ini pour dire: / usr / sbin / sendmail -t -i -f [email protected]
- Ajout à l'hôte virtuel de mydomain.conf de la ligne: ServerAdmin [email protected]
- Définir le chemin de retour sur "Oui" dans le backend Magento (Système -> Configuration -> Avancé -> Système -> Paramètres d'envoi de courrier.
Si cela peut aider, le contenu de mon fichier / etc / hosts est le suivant:
127.0.0.1 www.mydomain.com
127.0.0.1 mydomain.com
127.0.0.1 localhost localhost.localdomain
Pour la dernière ligne du fichier hosts, j'ai également essayé la variante ...
127.0.0.1 localhost.localdomain mydomain.com
... mais ça n'a toujours pas fonctionné.
J'ai pensé que cela pourrait aussi aider si j'ajoutais les en-têtes de l'e-mail, au cas où cela pourrait donner des indices sur ce qui pourrait se passer (j'ai changé beaucoup de valeurs pour le garder généralisé).
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
Une partie de moi ne sait pas si c'est normal, et je suppose que je ne suis pas sûr de ce qui pourrait faire apparaître apache @ localhost, mais si quelqu'un a une idée, ce serait très apprécié, merci!
Modifier Le MTA que j'utilise est Sendmail. Voici les modifications de configuration que j'ai apportées au fichier sendmail.mc pour s'adapter à mon site.
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
Modifier Je ne sais pas si cette question a de nouveau été marquée comme doublon, j'ai donc pensé que je devrais souligner le raisonnement pour lequel elle n'est pas basée sur la question référencée et pourquoi elle ne l'est pas. Passer à Postfix n'est pas une solution, mais une solution de contournement. Je détesterais déraciner toute la configuration que j'ai faite avec Sendmail jusqu'à présent uniquement pour rencontrer d'autres problèmes potentiels en essayant de faire fonctionner Postfix à la place. J'ai également mentionné la modification de la commande sendmail dans php.ini, si vous lisez les points mentionnés ci-dessus.
Modifier J'ai pensé que je pourrais aussi bien mentionner certaines des autres choses que j'ai essayé de faire qui n'ont pas fonctionné. J'ai ajouté à mon sendmail.mc les lignes suivantes:
FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
J'ai ensuite créé un fichier générique-domaines avec la seule ligne "mydomain.com" à l'intérieur. Ensuite, j'ai créé un fichier genericstable avec la seule ligne "apache [email protected]" à l'intérieur. J'ai exécuté make dans le répertoire de messagerie, recréé le fichier cf et redémarré sendmail, mais pas de dés.
J'ai essayé d'éditer le fichier / etc / aliases. J'ai essayé de changer la ligne "apache: root" pour dire "apache: root, mail @ mydomain.com", ainsi que "apache: [email protected]", mais cela n'a rien fait non plus.
J'ai également essayé d'ajouter au fichier / etc / mail / virtuserstable la ligne unique "apache @ localhost [email protected]". Cela n'a rien fait non plus.
Je suis surpris de voir à quel point il est frustrant de faire fonctionner cela correctement. Je suis si près de l'avoir là où j'en ai besoin, mais honnêtement, je ne sais pas où chercher pour remplacer la ligne "apache @ localhost".
la source
Réponses:
L'adresse e-mail de l'expéditeur est l'utilisateur du démon qui a demandé l'envoi du message (apache) @ le nom de domaine configuré dans votre MTA (sendmail ou postfix).
Si votre MTA local est postfixé, vous devez modifier le paramètre myorigin (qui prend par défaut le nom d'hôte configuré. Localhost dans cet exemple). Ce paramètre se trouve dans le fichier main.cf (l'emplacement par défaut dans la plupart des distributions est
/etc/postfix/main.cf
). Modifiez simplement le nom de domaine à partir duquel vous souhaitez qu'il envoie. Redémarrez ensuite postfix.Bien sûr, il peut être plus facile pour vous de simplement changer le nom d'hôte du serveur pour qu'il corresponde au domaine d'envoi souhaité.
Gardez à l'esprit que si vous allez envoyer des e-mails depuis ce serveur pour ce domaine, vous voudrez ajouter un enregistrement DNS SPF le permettant, sinon vos messages seront probablement vidés par des filtres anti-spam.
la source
En parcourant votre configuration, il semble qu'il manque quelques bits (et désolé pour ma syntaxe, je ne poste pas souvent):
Vous voudrez probablement ajouter l'option de configuration MASQUERADE_DOMAIN pour aller avec MASQUERADE_AS, en faisant correspondre MASQUERADE_DOMAIN à quel que soit le FQDN de l'hôte (hostname -f sur la plupart des plates-formes Linux). Je l'ai fait faire des choses étranges s'ils n'étaient pas tous les deux là, alors ce serait:
puis cette ligne:
Devrait vraiment être
ou il sera ignoré par les commandes make / hash lorsque vous mettrez à jour le fichier sendmail.cf. Ce gars donne une excellente explication de la raison pour laquelle Quelle est la différence entre "dnl" et "dnl #" dans un fichier sendmail.mc?
J'essaie toujours de me débarrasser de la partie "apache" de mon propre serveur, mais j'espère que cela vous rapprochera un peu!
la source
Système -> Configuration -> Avancé -> Système -> Définir le chemin de retour -> Oui
ou définissez-le sur l'e-mail que vous souhaitez utiliser. Je viens de le trouver aujourd'hui - apparemment, certains des e-mails étaient rejetés par les serveurs de messagerie avec des règles strictes (.edu, .gov ... etc.)
la source
Ajouter
define(`confRECEIVED_HEADER', `internal info removed')dnl
àsubmit.mc
générer ensuite le.cf
fichier et redémarrersendmail
comme d' habitude.Important: le fichier qui doit être modifié pour que cela fonctionne est
submit.mc
, et NONsendmail.mc
. Si vous modifiez lesendmail.mc
fichier à la place, l'Received
en-tête au-dessus de celui que vous avez mentionné sera celui modifié (c'est-à-direReceived: from mydomain.com (www.mydomain.com [127.0.0.1])
).Remarque: Au lieu de la chaîne littérale,
internal info removed
vous pouvez réutiliser certaines des informations fournies tout en masquant les informations sensibles, par exemple:by $j id $i; $b
pour obtenirby DOMAIN id ID; TIMESTAMP
.Ce qui précède supprimera / remplacera les informations après l'en-
Received
tête que vous avez mentionné:Voir aussi la question similaire: Comment supprimer Received: (de apache @ localhost) et la version sendmail des en-têtes
la source