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:
- 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
- Clique no menu Localizar…
- O menu de diálogo de localização aparecerá
- Clique no botão Encontrar próximo
- 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:
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:
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