Como enviar e-mail usando a função PHP mail()

O que é correio PHP?

PHP mail é a função PHP integrada usada para enviar e-mails a partir de scripts PHP.

A função mail aceita os seguintes parâmetros:

  • E-mail
  • Assunto
  • Mensagem
  • Endereços de e-mail CC ou BC

  • É uma forma econômica de notificar os usuários sobre eventos importantes.
  • Permita que os usuários entrem em contato com você por e-mail, fornecendo um formulário de contato no site que envia por e-mail o conteúdo fornecido.
  • Os desenvolvedores podem usá-lo para receber erros do sistema por email
  • Você pode usá-lo para enviar e-mail aos assinantes do boletim informativo.
  • Você pode usá-lo para enviar links de redefinição de senha para usuários que esqueceram suas senhas
  • Você pode usá-lo para enviar links de ativação/confirmação por e-mail. Isto é útil ao registrar usuários e verificar seus endereços de e-mail

Por que/quando usar o mail PHP

Enviando e-mail usando PHP

A função mail do PHP tem a seguinte sintaxe básica

<?php
mail($to_email_address,$subject,$message,[$headers],[$parameters]);
?>

AQUI,

  • “$to_email_address” é o endereço de e-mail do destinatário do e-mail
  • “$subject” é o assunto do e-mail
  • “$message” é a mensagem a ser enviada.
  • “[$headers]” é opcional, pode ser usado para incluir informações como CC, BCC

    • CC é a sigla para cópia carbono. É utilizado quando se deseja enviar uma cópia a um interessado, ou seja, um e-mail de reclamação enviado a uma empresa também pode ser enviado como CC ao órgão de reclamações.
    • BCC é a sigla para cópia oculta. É semelhante ao CC. Os endereços de e-mail incluídos na seção CCO não serão mostrados aos outros destinatários.

simples Mail Transmission Protocolo (SMTP)

O mailer PHP usa Simple Mail Transmission Protocolo (SMTP) para enviar e-mail.

Em um servidor hospedado, as configurações de SMTP já teriam sido definidas.

As configurações de correio SMTP podem ser definidas no arquivo “php.ini” na pasta de instalação do PHP.

Configurando as configurações de SMTP em seu host local Supondo que você esteja usando o xampp no ​​Windows, localize o “php.ini” no diretório “C:\xampp\php”.

  • Abra-o usando o bloco de notas ou qualquer editor de texto. Usaremos o bloco de notas neste exemplo. Clique no menu editar

simples Mail Transmission Protocolo

  • Clique no menu Localizar…

simples Mail Transmission Protocolo

  • O menu de diálogo de localização aparecerá

simples Mail Transmission Protocolo

  • Clique no botão Encontrar próximo

simples Mail Transmission Protocolo

  • Localize as entradas

    • [função de correio]
    • ; XAMPP: Não remova a semicoluna se quiser trabalhar com um servidor SMTP como Mercury
    • ; SMTP = localhost
    • ; porta_smtp = 25
    • Remova os pontos e vírgulas antes de SMTP e smtp_port e defina o SMTP para seu servidor smtp e a porta para sua porta smtp. Suas configurações devem ser as seguintes

      • SMTP = smtp.exemplo.com
      • porta_smtp = 25
      • Note as configurações de SMTP podem ser obtidas em seus provedores de hospedagem na web.
      • Se o servidor exigir autenticação, adicione as linhas a seguir.

        • auth_username = example_username@example.com
        • auth_password = exemplo_senha
        • Salve as novas alterações.
        • Reiniciar apache servidor.

PHP Mail Exemplo

Vejamos agora um exemplo que envia um e-mail simples.

<?php     
$to_email = 'name @ company . com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail function';
$headers = 'From: noreply @ company . com';
mail($to_email,$subject,$message,$headers);
?>

Saída:

simples Mail Transmission Protocolo

Nota: o exemplo acima leva apenas os 4 parâmetros obrigatórios.

Você deve substituir o endereço de e-mail fictício acima por um endereço de e-mail real.

Limpeza de entradas de usuário de e-mail

O exemplo acima usa valores codificados no código-fonte para o endereço de e-mail e outros detalhes para simplificar.

Vamos supor que você precise criar um formulário de contato para que os usuários preencham os detalhes e depois enviem.

  • Os usuários podem injetar código acidentalmente ou intencionalmente nos cabeçalhos, o que pode resultar no envio de spam
  • Para proteger seu sistema contra tais ataques, você pode criar uma função personalizada que limpa e valida os valores antes do envio do email.

Vamos criar uma função personalizada que valida e limpa o endereço de e-mail usando a função incorporada filter_var.

Função Filter_var A função filter_var é usada para limpar e validar os dados de entrada do usuário.

Possui a seguinte sintaxe básica.

<?php
filter_var($field, SANITIZATION TYPE);
?>

AQUI,

  • “filter_var(…)” é a função de validação e higienização
  • “$field” é o valor do campo a ser filtrado.
  • “TIPO DE SANITIZAÇÃO” é o tipo de higienização a ser realizada no campo como;

    • FILTRO_VALIDAR_EMAIL – retorna verdadeiro para endereços de e-mail válidos e falso para endereços de e-mail inválidos.
    • FILTRO_HIGIENIZAR_EMAIL – remove caracteres ilegais de endereços de e-mail. info\@domínio.(com) retorna info@domínio.com.
    • FILTER_SANITIZE_URL – remove caracteres ilegais de URLs. http://www.example@.comé retorna >http://www.example@.com
    • FILTER_SANITIZE_STRING – remove tags de valores de string. sou ousado torna-se ousado.

O código abaixo implementa o uso de uma função personalizada para enviar mensagens seguras.

<?php 
function sanitize_my_email($field) {
    $field = filter_var($field, FILTER_SANITIZE_EMAIL);
    if (filter_var($field, FILTER_VALIDATE_EMAIL)) {
        return true;
    } else {
        return false;
    }
}
$to_email = 'name @ company . com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail ';
$headers = 'From: noreply @ company. com';
//check if the email address is invalid $secure_check
$secure_check = sanitize_my_email($to_email);
if ($secure_check == false) {
    echo "Invalid input";
} else { //send email 
    mail($to_email, $subject, $message, $headers);
    echo "This email is sent using PHP Mail";
}
?>

Saída:

Limpeza de entradas de usuário de e-mail

Garanta o Mail

Os e-mails podem ser interceptados durante a transmissão por destinatários não intencionais.

Isso pode expor o conteúdo do e-mail a destinatários não intencionais.

O correio seguro resolve esse problema transmitindo e-mails via Hypertext Transfer Protocol Secure (HTTPS).

HTTPS criptografa mensagens antes de enviá-las.

Resumo

  • A PHP função interna mail() é usada para enviar e-mails de scripts PHP
  • As verificações de validação e higienização dos dados são essenciais para o envio de correspondência segura
  • A função incorporada filter_var() do PHP fornece uma maneira fácil de usar e eficiente de realizar a limpeza e validação de dados