Por que não devo usar a função mail () do PHP?

Na maioria das vezes, a opinião geral é não usar a função mail () padrão do PHP para enviar emails.
Em vez disso, use algumas bibliotecas onde você terá muito mais flexibilidade e controle sobre o que está enviando.
Existem muitos cabeçalhos que, na verdade, não são avançados, mas não são incluídos como parte da chamada mail () padrão, o que torna a integração inconveniente para os desenvolvedores.

A função padrão é provavelmente muito básica e não está pronta para oferecer suporte a alguns dos principais recursos, como anexar um arquivo ou enviar HTML ou usar Cco / Cc.

O envio de e-mails a partir do PHP tem suas vantagens e desvantagens.
Antes de concluir qualquer coisa, vamos primeiro entender as principais desvantagens de usar a função mail () padrão do PHP para enviar e-mails. Há casos em que o e-mail enviado via PHP mail () não foi recebido pelo destinatário e você também não receberá nenhum erro visual. O motivo mais comum para isso é o seguinte:

  1. formato incorreto de cabeçalho de e-mail ou conteúdo (por exemplo, diferenças de quebra de linha entre Windows / Unix)
  2. sendmail não instalado ou configurado no seu servidor (php.ini) - Este é um dos motivos mais comuns para os emails não serem entregues.
  3. o provedor de hospedagem do remetente não permite o envio de emails via PHP mail (); Esta é a política de proteção contra spam mais comum que quase todos os provedores de hospedagem adicionam em seus servidores. Nesse caso, eles bloqueiam principalmente a saída [portas SMTP 25, 587 e 465.] (https://pepipost.com/blog/25-465-587-2525-choose-the-right-smtp-port/)

Além disso, é uma observação comum, que emails enviados por meio da função PHP mail () padrão têm problemas com o formato do cabeçalho ou conteúdo que podem causar sérios problemas de spam.

Na maioria dos casos, os emails enviados por meio da função padrão tendem a pousar na pasta de spam da caixa de correio do destinatário ou são enviados de volta ao remetente ou simplesmente rejeitados. GMX é o melhor exemplo de um provedor de correio gratuito que rejeita ou apaga esses e-mails sem informar o destinatário. Correio PHP de endereço mal faz sentido aqui.

Enquanto outros provedores, como o Gmail, aceitam os e-mails, mas filtra os que estão na pasta de spam.

Na verdade, você encontrará a nota abaixo no manual oficial do PHP.net, que diz claramente que a função mail () não é adequada para enviar uma quantidade significativa de e-mails.

📘

Observação

É importante notar que a função mail () não é adequada para grandes volumes de e-mail em um loop. Esta função abre e fecha um soquete SMTP para cada e-mail, o que não é muito eficiente.
Para o envio de grandes quantidades de e-mail, veja os pacotes »PEAR :: Mail e» PEAR :: Mail_Queue.

Não é apenas a função mail () que importa muito, mas também o servidor SMTP. Existem diferentes tipos de servidores SMTP. Sendmail é quase o padrão, mas existem alguns outros servidores SMTP de código aberto como Postfix, Gmail.

O Postfix é definitivamente um dos mais fáceis de integrar, especialmente com a função mail no PHP, mas na maioria das vezes você não o encontrará como uma implantação única, onde você instalou o postfix e começou a funcionar sem problemas.

🚧

Se você estiver enviando e-mails em massa, por favor, tome cuidado com o endereço IP do servidor e o endereço 'de' do e-mail PHP usado, porque por padrão o PHP mail () funciona usando o IP padrão do servidor e o nome do host como 'de'.

Problemas comuns, como anexos corrompidos, e-mails Bcc / CC não recebidos ou corrompidos, podem vir. E, uma vez que você comece a adicionar correções para tudo isso, você verá que vai começar a tornar o seu código um pouco malfeito e incompatível para funcionar sem problemas com outros servidores SMTP.

Portanto, se você realmente tiver tempo para resolver tudo isso, vá em frente com o core mail (); função para enviar e-mails, caso contrário, use para biblioteca de envio de e-mail como [PHPMAILER] (https://pepipost.com/blog/sending-emails-smtp-phpmailer-pepipost/) que é de código aberto ou apenas mude para algum bom ESP (e-mail Provedor de serviço).

  • Escolher um bom ESP e seguir as melhores práticas de e-mail ajudará você a proteger seus e-mails contra spam. *