¿Eliminar apache @ localhost de los encabezados de correo electrónico?

11

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".

Ala cero
fuente
Bueno, por un lado, las soluciones a esas preguntas no funcionan para mí. La primera solución se reduce a "No pude encontrar la manera de hacer que sendmail funcione, así que me di por vencido y me cambié a postfix". Esa no es una solución al problema, es una solución alternativa. La segunda solución, para agregar el nombre del servidor al archivo hosts, tampoco funcionó para mí, por lo que esencialmente el problema que estoy experimentando debe ser diferente. Y no es que pueda esperar a que alguien agregue otras soluciones viables a las preguntas que tienen más de 2 años.
Zero Wing

Respuestas:

4

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.

Joe
fuente
Hola, mi MTA es en realidad sendmail, aunque creo que he hecho todos los ajustes posibles que se pueden hacer (intentaré agregar algunos de esos cambios a mi pregunta). ¿Podría también aclarar sobre "cambiar el nombre de host del servidor para que coincida con el dominio de envío deseado?" Si quiere decir que debería hacerlo de modo que cuando escriba "hostname" en la línea de comando para que salga mydomain.com, ya tengo eso configurado. Y también, tengo un registro SPF establecido para el dominio, mencioné en la pregunta que tengo el SPF y DKIM configurados y funcionando correctamente (veo un pase para ambos en mis encabezados de correo electrónico).
Ala cero
Encontró una publicación que podría ayudar a sugerir lo siguiente: Para cambiar la dirección del sobre "desde" en Unix, especifique una opción "-r" en su binario sendmail. Puede hacer esto globalmente en php.ini agregando la opción "-r" a la línea de comando "sendmail_path". fuente: stackoverflow.com/questions/5666312/…
Joe
Intenté agregar "-r" al "sendmail_path" en mi php.ini, pero esto pareció romper algo, ya que el correo de repente dejó de enviarse desde el servidor. Más específicamente, cambié la línea a --- sendmail_path = / usr / sbin / sendmail -t -i -r [email protected], pero todavía no funcionó (lo intenté con y sin comillas, y también hice Asegúrese de reiniciar el servidor, pero no dice nada, y no estoy seguro de lo que impedía que pudiera enviar correos electrónicos después de ese punto
Ala cero
3

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:

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

y luego esta línea:

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

Realmente debería ser

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

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!

LiquidLight
fuente
1

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.)

Kalvin Klien
fuente
Perdimos horas tratando de averiguar por qué se ignoraban nuestros registros SPF y los correos electrónicos todavía se marcaban como falsificados cuando nos los enviaban desde nuestro sitio. Tenía el presentimiento de que era el encabezado Recibido-De lo que me llevó aquí. ¡Su solución de 30 segundos funcionó instantáneamente y puso fin a horas de frustración! La solución más simple para este problema y Magento en esta página. Te recomiendo que pruebes esto antes de modificar la configuración de tu servidor.
Ashley Swatton
Recomiendo desactivar completamente el servicio de correo electrónico basado en el servidor y simplemente usar el complemento Sparkpost + smtpPro. Funciona de maravilla con 100,000 correos electrónicos / mes gratis.
Kalvin Klien
1

Agregar define(`confRECEIVED_HEADER', `internal info removed')dnlpara submit.mcluego generar el .cfarchivo y reiniciar sendmailcomo de costumbre.

Importante: el archivo que debe editarse para que esto funcione es submit.mc, y NO sendmail.mc. Si edita el sendmail.mcarchivo en su lugar, el Receivedencabezado sobre el que mencionó será el modificado (es decir Received: 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; $bpara obtener by DOMAIN id ID; TIMESTAMP.

Lo anterior eliminará / reemplazará la información después del Receivedencabezado que mencionó:

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

Consulte también la pregunta similar: Cómo eliminar Recibido: (de apache @ localhost) y la versión de sendmail de los encabezados

Chris Dev
fuente