Mi configuración: estoy ejecutando un sitio web de Magento en un servidor Amazon Linux (que parece ser básicamente CentOS) con un servidor web Apache. También uso Google Apps para administrar el correo de mydomain.com.
Pude configurar con éxito los registros MX, SPF y DKIM para el servidor y los puse a trabajar, de modo que recibo un "Pase" para SPF y DKIM cuando envío correos electrónicos. Sin embargo, me he encontrado con un problema extraño que parece que no puedo superar --- parte del encabezado de los correos electrónicos que envío parece decir siempre:
Received: (from apache@localhost) by mydomain.com
He buscado por todas partes una forma de cambiar esto para usar "[email protected]" en su lugar, pero parece que no puedo entenderlo.
Entre las cosas que he probado:
- Cambiar el php.ini para decir: / usr / sbin / sendmail -t -i -f [email protected]
- Agregando al host virtual de mydomain.conf la línea: ServerAdmin [email protected]
- Establecer la ruta de retorno a "Sí" en el backend de Magento (Sistema -> Configuración -> Avanzado -> Sistema -> Configuración de envío de correo.
Si ayuda, el contenido de mi archivo / etc / hosts es el siguiente:
127.0.0.1 www.mydomain.com
127.0.0.1 mydomain.com
127.0.0.1 localhost localhost.localdomain
Para la última línea del archivo hosts, también probé la variación ...
127.0.0.1 localhost.localdomain mydomain.com
... pero aun así no funcionó.
Pensé que también podría ayudar si agregaba los encabezados del correo electrónico, en caso de que pudiera dar algunas pistas sobre lo que podría estar sucediendo (he cambiado muchos valores para mantenerlo generalizado).
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
Una parte de mí no está segura de si esto es normal, y supongo que no estoy seguro de qué podría estar causando la aparición de apache @ localhost, pero si alguien tiene una idea, se lo agradeceríamos mucho, ¡gracias!
Editar El MTA que estoy usando es Sendmail. Aquí están los cambios de configuración que he realizado en el archivo sendmail.mc para acomodar mi sitio.
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
Editar No estoy seguro de si esta pregunta se marcó como duplicada nuevamente, así que pensé que debería enfatizar el razonamiento por el que no se basa en la pregunta referida en cuanto a por qué no lo es. Cambiar a Postfix no es una solución, sino una solución alternativa. Odiaría arrancar de raíz toda la configuración que he hecho con Sendmail hasta ahora solo para encontrar otros posibles problemas al intentar que Postfix funcione. También mencioné la edición del comando sendmail en php.ini, si lees los puntos que mencioné anteriormente.
Editar Supuse que también podría mencionar algunas de las otras cosas que intenté hacer que no funcionaron. Agregué a mi sendmail.mc las siguientes líneas:
FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
Luego creé un archivo de dominios genéricos con la línea única "mydomain.com" dentro de él. Luego, creé un archivo genérico estable con la línea única "apache [email protected]" dentro de él. Ejecuté make en el directorio de correo, recreé el archivo cf y reinicié sendmail, pero sin dados.
Intenté editar el archivo / etc / aliases. Intenté cambiar la línea "apache: root" para decir "apache: root, mail @ mydomain.com", así como "apache: [email protected]", pero eso tampoco hizo nada.
También intenté agregar al archivo / etc / mail / virtuserstable la línea simple "apache @ localhost [email protected]". Eso tampoco hizo nada.
Me sorprende lo frustrante que es hacer que esto funcione correctamente. Estoy tan cerca de tenerlo donde lo necesito, pero honestamente no sé dónde buscar para reemplazar la línea "apache @ localhost".
fuente
Respuestas:
La dirección de correo electrónico de remitente es el usuario del demonio que solicitó el envío del mensaje (apache) @ el nombre de dominio configurado en su MTA (ya sea sendmail o postfix).
Si su MTA local es postfix, debe cambiar la configuración de myorigin (que por defecto es el nombre de host configurado. Localhost en este ejemplo). Esta configuración está en main.cf (la ubicación predeterminada en la mayoría de las distribuciones es
/etc/postfix/main.cf
). Simplemente cambie eso al nombre de dominio desde el que desea que envíe. Luego reinicie postfix.Por supuesto, puede ser más fácil para usted simplemente cambiar el nombre de host del servidor para que coincida con el dominio de envío deseado.
Tenga en cuenta que si va a enviar un correo electrónico desde este servidor para ese dominio, querrá agregar un registro DNS SPF que lo permita, de lo contrario sus mensajes probablemente serán rechazados por los filtros de spam.
fuente
Al revisar su configuración, parece que faltan un par de bits (y perdón por mi sintaxis, no publico a menudo):
Probablemente desee agregar la opción de configuración MASQUERADE_DOMAIN para ir con MASQUERADE_AS, haciendo coincidir MASQUERADE_DOMAIN con el FQDN del host (nombre de host -f en la mayoría de las plataformas de Linux). He tenido que hacer cosas extrañas si no están los dos allí, por lo que sería:
y luego esta línea:
Realmente debería ser
o será ignorado por los comandos make / hash cuando actualice el archivo sendmail.cf. Este chico da una gran explicación de por qué ¿ Cuál es la diferencia entre "dnl" y "dnl #" en un archivo sendmail.mc?
Todavía estoy tratando de deshacerme de la parte "apache" en mi propio servidor, ¡pero espero que esto te acerque un poco más!
fuente
Sistema -> Configuración -> Avanzado -> Sistema -> Establecer ruta de retorno -> Sí
o configúrelo en el correo electrónico que desea usar. Acabo de encontrar esto hoy, aparentemente algunos de los correos electrónicos fueron rechazados por servidores de correo con reglas estrictas (.edu, .gov ... etc.)
fuente
Agregar
define(`confRECEIVED_HEADER', `internal info removed')dnl
parasubmit.mc
luego generar el.cf
archivo y reiniciarsendmail
como de costumbre.Importante: el archivo que debe editarse para que esto funcione es
submit.mc
, y NOsendmail.mc
. Si edita elsendmail.mc
archivo en su lugar, elReceived
encabezado sobre el que mencionó será el modificado (es decirReceived: from mydomain.com (www.mydomain.com [127.0.0.1])
).Nota: en lugar de la cadena literal
internal info removed
, puede reutilizar parte de la información proporcionada mientras oculta la sensible, por ejemplo:by $j id $i; $b
para obtenerby DOMAIN id ID; TIMESTAMP
.Lo anterior eliminará / reemplazará la información después del
Received
encabezado que mencionó:Consulte también la pregunta similar: Cómo eliminar Recibido: (de apache @ localhost) y la versión de sendmail de los encabezados
fuente