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.