Primeiro, o essencial:
- Leia as RFCs relevantes, como RFC 5321 , e certifique-se de que seus e-mails estejam de acordo com ela. omita os cabeçalhos, como
Date:
Subject:
ouFrom:
, e leia atentamente os detalhes de formato do campoFrom:
. Apenas um endereço de e-mail não é mais válido. - Verifique se o endereço
From:
usado é um endereço válido para o qual você pode receber correspondências. - Faça o PHP enviar o e-mail por meio da instalação local do postfix e não diretamente pela Internet ou pelo host de hospedagem na Web.
- Mantenha as entradas de DNS iguais para pesquisas de avanço e de trás para frente
(
mysubdomain.mydomain.com.
deve resolver para o endereço IP que tem um registro PTR apontando paramysubdomain.mydomain.com.
). - Faça o servidor de e-mail enviar seu HELO (EHLO) com seu FQDN correto (
mysubdomain.mydomain.com.
). - Implementar assinatura do DKIM a> de emails enviados
- Evite hospedagem compartilhada por sistemas que são hackeados com frequência.
- Adicione seu servidor a DNSWL.ORG
- Publique um registro SPF em seu domínio que indique que seu servidor é um legítimo remetente para seu domínio
- Evite conteúdo "com spam": -)
- procure por caracteres de 8 bits. Eles precisam de codificação adequada nos cabeçalhos.
Depois de configurá-lo, você está pronto para solucionar problemas se o e-mail ainda não passar:
- verifique a fila de mensagens postfix (
mailq
) e os logs, como/var/log/mail*log
(o nome do arquivo pode variar dependendo da distribuição) - se o e-mail não sair do servidor, o postfix geralmente informará o motivo.
-
se o email sair do servidor, o problema estará no lado do destinatário. Verifique o seu registro de e-mail para a mensagem de status do MX dos receptores. Deve ficar assim:
2013-11-26T11:04:23.435295+01:00 jamie postfix/smtp[28919]: 415E65E3976: to=<[email protected]>, relay=hoover.blaha.se[123.45.67.89]:25, delay=0.24, delays=0.2/0.02/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 661D12C0CD)
Observe o " status=sent
", o (250
e " queued as 661D12C0CD
".
250
é o código de status recebido pelo MTA, indicando sucesso e essa entrega é responsabilidade deles agora. Se o código de status começar com 4
(como em 450
), houve um erro temporário e a mensagem deverá permanecer na sua fila (visível com mailq
). Se o código de status começar com 5
(como em 550
), houve uma falha permanente e não há sentido em tentar novamente com o mesmo endereço de destinatário. Em seguida, o e-mail é removido da sua fila e não é entregue, e uma mensagem devolvida pode ser enviada de volta ao originador. Esta é uma das razões pelas quais você precisa de um endereço From:
válido.
O número 661D12C0CD
neste exemplo é o ID da fila do sistema remoto. Use isso quando olhar através dos logs (ou conversando com o postmaster) no lado do destinatário.