Enviando e-mails no PHP

O PHP permite que você envie e-mails diretamente de um script.

A função mail()

A função mail é usada para enviar e-mails de um script.

Sintaxe

mail(para, assunto, mensagem, cabeçalhos, parâmetros)

ParâmetroDescrição
paraRequerido. Especifica para quem irá o e-mail.
assuntoRequerido. O assunto do e-mail. Não pode conter o caractere nova linha (\n)
mensagemRequerido. Define a mensagem a ser enviada. Cada linha da mensagem deve ser separada por um caractere de nova-linha(\n). As linhas não devem exceder 70 caracteres
cabeçalhosOpcional. Especifica cabeçalhos opcionais como From (De: quem manda a mensagem), CC (Com cópia para), Bcc (Cópia oculta para). Cada linha do dos cabeçalhos deve ser separada por CRLF (\r\n).
parâmetrosOpcional. Especifica parâmetros opcionais para o programa sendmail


Nota: Para que a função mail() funcione o PHP tem que ser configurado em um sistema de e-mail que esteja funcionado. O programa a ser usado é definido no arquivo php.ini para saber mais detalhes sobre esta configuração consulte a documentação do PHP.

Um e-mail simples

A forma mais simples para se enviar um email com o PHP é um email em texto.

No exemplo abaixo nos primeiro declaramos as variáveis ($para, $assunto, $mensagem, $de, $cabecalhos), então nós usamos as variáveis na função mail() para enviar um e-mail:

   1:<?php
2:$para = "alguem@exemplo.com";
3:$assunto = "Teste de email";
4:$mensagem = "Oi! Esta é uma mensagem de exemplo.";
5:$de = "eu@exemplo.com";
6:$cabecalhos = "From: $de";
7:mail($para, $assunto, $mensagem, $cabecalhos);
8:echo "E-mail enviado.";
9:?>
Formulário de e-mail no PHP

Com o PHP, você pode criar um formulário de contato no seu site. O exemplo abaixo envia uma menssagem de texto para um endereço de e-mail especificado:

   1:<html>
2:<body>
3:<?php
4:if (isset($_REQUEST['email'])) {
5: //send email
6: $email = $_REQUEST['email'] ;
7: $assunto = $_REQUEST['assunto'] ;
8: $mensagem = $_REQUEST['mensagem'] ;
9: mail( "alguem@exemplo.com", "Assunto: $assunto", $mensagem, "From: $email" );
10: echo "Obrigado pela sua mensagem!";
11:}
12:?>
13:<form method='post' action='mailform.php'>
14:Email: <input name='email' type='text' /><br />
15:Subject: <input name='assunto' type='text' /><br />
16:Message:<br />
17:<textarea name='mensagem' rows='15' cols='40'>
18:</textarea><br />
19:<input type='submit' value='Enviar'/>
20:</form>
21:</body>
22:</html>
Como funciona o exemplo acima:
Primeiro é checado se o campo e-mail foi preenchido.
Se ele foi preenchido o e-mail é enviado e a mensagem é exibida.

Nota: Esta é a forma mais simples de se mandar um e-mail, mas não é segura. No próximo post veremos mais sobre as vulnerabilidades em scripts de e-mail e sobre como validar a entrada de usuários para tornar os programas mais seguros.

Referencia para e-mail no PHP

Para mais informações sobre a função mail() e e-mail no PHP visite a documentação do PHP.

Fonte

3 comentários:

  1. Boa tarde.
    No código { 2:$para = "alguem@exemplo.com" }, como faço para add mais de um e-mail.
    Já tentei das duas formas e não deu certo, com “.” e com “;”.
    Jeitos testados >>
    1ª - $to= "alguem@exemplo.com" , "outroalguem@exemplo.com" ;
    2ª - $to= "alguem@exemplo.com" ; "outroalguem@exemplo.com" ;

    Só funcionada quando deixo um e-mail.

    Alguém pode me ajudar ???

    ResponderExcluir
  2. Tente o seguinte:
    "alguem@exemplo.com;outroalguem@exemplo.com";

    ResponderExcluir
  3. meu formulário insere os dados no bd, gostaria que enviasse o form por e-mail ao mesmo tempo, inclui o código acima logo abaixo da tag body mas não enviou. obrigado.

    ResponderExcluir