Enviar e-mail a partir do PHP: mail() ou SMTP

Use SMTP com uma caixa de e-mail real do seu domínio. A função mail() serve para um teste rápido, mas devolve “enviado” só porque o programa de correio local aceitou a mensagem, não porque ela chegou. Com SMTP há autenticação, há erros que se lêem, e as mensagens têm muito mais hipóteses de não acabar no spam.

As duas maneiras, lado a lado

mail() SMTP
Como sai Entregue ao programa de correio do servidor, sem nenhuma autenticação. O seu código entra numa caixa de e-mail com utilizador e palavra-passe, e envia por ela.
Se falhar O PHP diz “verdadeiro” na mesma. Não se sabe nada. Há mensagens de erro claras: palavra-passe errada, porta errada, remetente recusado.
Spam O remetente e o servidor raramente coincidem, o que os filtros notam. O remetente é uma caixa do seu domínio, que tem SPF e DKIM a seu favor.
Configuração Nenhuma no código. Servidor, porta, utilizador, palavra-passe e cifra.

Passar a SMTP

1 Crie uma caixa só para os envios do site, por exemplo site@o-seu-dominio. Veja criar uma conta de e-mail no cPanel.
2 Veja as definições dessa caixa em Email Accounts, no cPanel: o servidor de saída, a porta e a cifra. O SMTP com SSL usa a porta 465. O utilizador é o endereço completo.
3 Use uma biblioteca em vez de montar o protocolo à mão. O PHPMailer faz-se em poucas linhas: veja enviar e-mail com o PHPMailer. No WordPress, fazer o WordPress enviar e-mail como deve ser, por SMTP.
4 Ponha o remetente (From) igual à caixa que autentica, ou ao mesmo domínio. Um remetente de um domínio que não é seu (um endereço de Gmail, por exemplo) é o que mais depressa leva ao spam.
5 Envie uma mensagem de teste para um endereço seu noutro fornecedor e veja se chegou à caixa de entrada ou ao spam.
Um formulário aberto é um canhão de spam. Se o seu script deixa quem o usa escolher o destinatário, o remetente ou o assunto sem validação, alguém vai usá-lo para enviar spam pela sua conta, e o servidor acaba numa lista de bloqueio. Valide o que vem do formulário, e fixe o destinatário no código. Se já aconteceu, veja o IP do servidor numa lista de bloqueio.
Mesmo com SMTP certo, o domínio tem de estar bem configurado. Sem SPF, DKIM e DMARC as mensagens são suspeitas: veja SPF, DKIM e DMARC. Há limites de envio por hora e regras de comportamento: escrever um e-mail que não acaba no spam. E o cPanel tem o Track Delivery, onde se vê o destino de cada mensagem.

O formulário diz “enviado” e a mensagem nunca chega? Diga-nos o endereço de origem, o de destino e a hora.

Abrir um pedido de suporte

VEJA TAMBÉM

Enviar e-mail com o PHPMailer

Um formulário de contacto que chega mesmo à sua caixa

Porque é que o e-mail não envia nem recebe

SPF, DKIM e DMARC: porque o e-mail cai no spam

PRODUTO RECOMENDADO

E-mail profissional no seu domínio

Caixas com o nome da sua empresa, sem publicidade, com filtro de spam. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?