Removendo o apache @ localhost dos cabeçalhos de email?

11

Minha configuração: estou executando um site Magento em um servidor Amazon Linux (que parece basicamente o CentOS) com um servidor Apache. Também uso o Google Apps para gerenciar os e-mails do meu domínio.com.

Consegui configurar com êxito os registros MX, SPF e DKIM para o servidor e fazê-los funcionar, para que eu receba um "Passe" para SPF e DKIM ao enviar emails. No entanto, encontrei um problema estranho que parece que não consigo passar - parte do cabeçalho dos e-mails que envio parece sempre dizer:

Received: (from apache@localhost) by mydomain.com 

Pesquisei em alto e baixo uma maneira de mudar isso para usar "[email protected]", mas não consigo entender.

Entre as coisas que eu tentei:

  • Alterando o php.ini para dizer: / usr / sbin / sendmail -t -i -f [email protected]
  • Adicionando ao host virtual do mydomain.conf a linha: ServerAdmin [email protected]
  • Definindo o caminho de retorno como "Sim" no back-end do Magento (Sistema -> Configuração -> Avançado -> Sistema -> Configurações de envio de email.

Se ajudar, o conteúdo do meu arquivo / etc / hosts é o seguinte:

127.0.0.1   www.mydomain.com
127.0.0.1   mydomain.com
127.0.0.1   localhost localhost.localdomain

Para a última linha do arquivo hosts, também tentei a variação ...

127.0.0.1   localhost.localdomain mydomain.com

... mas ainda não funcionou.

Eu pensei que também poderia ajudar se eu adicionasse os cabeçalhos do email, caso isso possa dar algumas pistas do que pode estar acontecendo (eu mudei muitos valores para mantê-lo 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

Parte de mim não tem certeza se isso é normal e acho que não tenho certeza do que pode estar causando o apache @ localhost, mas se alguém tiver uma idéia, isso será muito apreciado, obrigado!

Editar O MTA que estou usando é o Sendmail. Aqui estão as alterações de configuração que eu fiz no arquivo sendmail.mc para acomodar o meu 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

Editar Não tenho certeza se essa pergunta foi marcada como duplicada novamente, então pensei em enfatizar o raciocínio por que não se baseia na questão referida e por que não está. Mudar para o Postfix não é uma solução, mas uma solução alternativa. Eu odiaria arrancar toda a configuração que fiz com o Sendmail até agora, apenas para encontrar outros problemas em potencial ao tentar fazer o Postfix funcionar. Eu também já mencionei a edição do comando sendmail no php.ini, se você leu os tópicos mencionados acima.

Editar Eu imaginei que também poderia mencionar algumas das outras coisas que tentei fazer que não funcionaram. Adicionei ao meu sendmail.mc as seguintes linhas:

FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl

Criei um arquivo de domínios genéricos com a única linha "mydomain.com" dentro dele. Em seguida, criei um arquivo de tabela genérica com a única linha "apache [email protected]" dentro dele. Corri make no diretório de correio, recriei o arquivo cf e reiniciei o sendmail, mas nenhum dado.

Eu tentei editar o arquivo / etc / aliases. Tentei alterar a linha "apache: root" para dizer "apache: root, mail @ meudominio.com", bem como apenas "apache: [email protected]", mas isso também não fez nada.

Eu também tentei adicionar ao arquivo / etc / mail / virtuserstable a linha única "apache @ localhost [email protected]". Isso também não fez nada.

Estou surpreso com o quão frustrante é fazer isso funcionar corretamente. Estou tão perto de tê-lo onde preciso, mas sinceramente não sei onde procurar obter a linha "apache @ localhost" substituída.

Zero Wing
fonte
Bem, por um lado, as soluções para essas perguntas não funcionam para mim. A primeira solução se resume a "Não consegui descobrir como fazer o sendmail funcionar, então desisti e mudei para o postfix". Essa não é uma solução para o problema, é uma solução alternativa. A segunda solução, para adicionar o nome do servidor ao arquivo hosts, também não funcionou para mim - portanto, essencialmente, o problema que estou enfrentando deve ser diferente. E não é como se eu pudesse esperar que alguém adicionasse outras soluções viáveis ​​a perguntas com mais de 2 anos de idade.
Zero asa

Respostas:

4

O endereço de email from é o usuário do daemon que solicitou o envio da mensagem (apache) @ o nome de domínio configurado no seu MTA (sendmail ou postfix).

Se o seu MTA local for postfix, você precisará alterar a configuração myorigin (o padrão é o nome do host configurado. Localhost neste exemplo). Essa configuração está no main.cf (o local padrão na maioria das distribuições é /etc/postfix/main.cf). Apenas mude isso para o nome de domínio do qual você deseja enviar. Em seguida, reinicie o postfix.

Obviamente, pode ser mais fácil alterar o nome do host do servidor para corresponder ao domínio de envio desejado.

Lembre-se de que, se você enviar um email desse servidor para esse domínio, adicione um registro DNS SPF, caso contrário, suas mensagens provavelmente serão descartadas pelos filtros de spam.

Joe
fonte
Olá, meu MTA é realmente sendmail, embora eu acho que fiz todos os ajustes possíveis que podem ser feitos (vou tentar adicionar algumas dessas alterações à minha pergunta). Você também pode esclarecer sobre "alterar o nome do host do servidor para corresponder ao domínio de envio desejado?" Se você quer dizer que devo fazê-lo, de modo que, quando digito "hostname" na linha de comando, de forma a gerar meu domínio.com, eu já o tenha configurado. Além disso, tenho um registro SPF definido para o domínio, mencionei na pergunta que tenho o SPF e o DKIM configurados e funcionando com êxito (vejo um passe para ambos nos cabeçalhos de email).
Zero Wing
Encontrou uma postagem que pode ajudar a sugerir o seguinte: Para alterar o endereço "de" do envelope no unix, você especifica uma opção "-r" para o seu binário sendmail. Você pode fazer isso globalmente no php.ini adicionando a opção "-r" à linha de comando "sendmail_path". fonte: stackoverflow.com/questions/5666312/...
Joe
Tentei adicionar "-r" ao "sendmail_path" no meu php.ini, mas isso pareceu quebrar alguma coisa, pois o correio parou de ser enviado do servidor. Mais especificamente, alterei a linha para --- sendmail_path = / usr / sbin / sendmail -t -i -r [email protected], mas ainda não funcionou (tentei com e sem aspas e também fiz Certifique-se de reiniciar o servidor, mas não há dados, e não tenho certeza do que estava impedindo o envio de e-mails após esse ponto).
Zero asa
3

Ao examinar sua configuração, parece que faltam alguns bits (e desculpe pela minha sintaxe, não publico frequentemente):

Você provavelmente desejará adicionar a opção de configuração MASQUERADE_DOMAIN para ir com MASQUERADE_AS, correspondendo a MASQUERADE_DOMAIN a qualquer que seja o FQDN do host (hostname -f na maioria das plataformas Linux). Eu tive que fazer coisas estranhas se elas não estiverem lá, então seria:

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

e então esta linha:

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

Realmente deveria ser

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

ou será ignorado pelos comandos make / hash quando você atualizar o arquivo sendmail.cf. Esse cara dá uma ótima explicação de por que qual é a diferença entre "dnl" e "dnl #" em um arquivo sendmail.mc?

Ainda estou tentando me livrar da parte "apache" no meu próprio servidor, mas espero que isso te aproxime um pouco!

LiquidLight
fonte
1

Sistema -> Configuração -> Avançado -> Sistema -> Definir caminho de retorno -> Sim

ou defina-o como email que você deseja usar. Acabei de encontrar isso hoje - aparentemente alguns dos emails foram rejeitados pelos servidores de email com regras rígidas (.edu, .gov ... etc)

Kalvin Klien
fonte
Horas perdidas tentando descobrir por que nossos registros SPF estavam sendo ignorados e os e-mails ainda eram sinalizados como falsificados quando enviados do nosso site para nós. Teve um palpite de que foi o cabeçalho Received-From que me levou até aqui. Sua solução de 30 segundos funcionou instantaneamente e acabou com horas de frustração! Solução mais simples para esta questão e Magento nesta página. Recomendamos que você tente isso antes de alterar a configuração do servidor.
Ashley Swatton
Eu recomendo desativar completamente o serviço de email baseado em servidor e apenas usar o plugin Sparkpost + smtpPro. Funciona como um encanto com 100.000 e-mails / mês grátis.
Kalvin Klien
1

Adicione define(`confRECEIVED_HEADER', `internal info removed')dnlpara submit.mcgerar o .cfarquivo e reinicie sendmailcomo de costume.

Importante: o arquivo que deve ser editado para que isso funcione é submit.mce NÃO sendmail.mc. Se você editar o sendmail.mcarquivo, o Receivedcabeçalho acima do mencionado será o modificado (ou seja Received: from mydomain.com (www.mydomain.com [127.0.0.1])).

Nota: Em vez da string literal, internal info removedvocê pode reutilizar algumas das informações fornecidas enquanto oculta a sensível, por exemplo: by $j id $i; $bpara obter by DOMAIN id ID; TIMESTAMP.

O acima irá remover / substituir as informações após o Receivedcabeçalho que você mencionou:

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 também uma pergunta semelhante: Como remover a versão Received: (do apache @ localhost) e sendmail dos cabeçalhos

Chris Dev
fonte