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.
fonte
Respostas:
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.
fonte
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:
e então esta linha:
Realmente deveria ser
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!
fonte
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)
fonte
Adicione
define(`confRECEIVED_HEADER', `internal info removed')dnl
parasubmit.mc
gerar o.cf
arquivo e reiniciesendmail
como de costume.Importante: o arquivo que deve ser editado para que isso funcione é
submit.mc
e NÃOsendmail.mc
. Se você editar osendmail.mc
arquivo, oReceived
cabeçalho acima do mencionado será o modificado (ou sejaReceived: from mydomain.com (www.mydomain.com [127.0.0.1])
).Nota: Em vez da string literal,
internal info removed
você pode reutilizar algumas das informações fornecidas enquanto oculta a sensível, por exemplo:by $j id $i; $b
para obterby DOMAIN id ID; TIMESTAMP
.O acima irá remover / substituir as informações após o
Received
cabeçalho que você mencionou:Consulte também uma pergunta semelhante: Como remover a versão Received: (do apache @ localhost) e sendmail dos cabeçalhos
fonte