Nessa video aula vou responder a pergunta do Marcilio Souza e ensinar a todos que possuem a mesma duvida.
Nela vou ensinar como se envia um email pelo PHP usano a função Mail (); e como se envia um formulário para o E-mail.
Boa Aula
Abraços
PHP Mail
formulario.php
<?php
//Para quem vai ser enviado o email
$para = "seu-email@dominio.com.br";
//resgata o nome digitado no formulário e grava na variavel $nome
$nome = $_POST['nome'];
//resgata o assunto digitado no formulário e grava na variavel $assunto
$assunto = $_POST['assunto'];
//mensagem que vai ser enviado no e-mail
$mensagem = "<strong>Nome: </strong>".$nome;
$mensagem .= "<br> <strong>Mensagem: </strong>".$_POST['mensagem'];
//hader para o e-mail ir com codificações corretas e tudo mais.
$headers = "Content-Type:text/html; charset=UTF-8n";
$headers .= "From: dominio.com.br<sistema@dominio.com.br>n"; //Vai ser mostrado que o email partiu deste email e seguido do nome
$headers .= "X-Sender: <sistema@dominio.com.br>n"; //email do servidor que enviou
$headers .= "X-Mailer: PHP v".phpversion()."n";
$headers .= "X-IP: ".$_SERVER['REMOTE_ADDR']."n";
$headers .= "Return-Path: <sistema@dominio.com.br>n"; //caso a msg seja respondida vai para este email.
$headers .= "MIME-Version: 1.0n";
mail($para, $assunto, $mensagem, $headers); //função que faz o envio do email.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Enviando email pelo PHP - LuizAzevedo.com.br</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td align="right">Nome:</td>
<td><input type="text" name="nome" id="nome" /></td>
</tr>
<tr>
<td align="right">Assunto:</td>
<td><input type="text" name="assunto" id="assunto" /></td>
</tr>
<tr>
<td align="right">Mensagem:</td>
<td><textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Enviar" /></td>
</tr>
</table>
</form>
</body>
</html>
Luiz, boa tarde.
Gostei muito do Video, estou muito precisando disso mesmo.
Fiz o código exatamente como vc ensinou, mas não está enviando e nem dando erro nenhum. Vc poderia me ajudar?
Desde ja agradeço
Caro Felipe.
Alguns dias atras, fui realizar o site de um cliente e utilizei este código que mostre na video aula.
Mas para testes deixei o site do cliente rodando no meu servidor.
E eu não estava recebendo os e-mail.
Como eu tinha outras tarefas no site para fazer, fui realizar as oturas. Esta semana fui resolver o tal do e-mail para entregar o site.
E também não funcionou comigo de imediato. Após alguns dias recebi o e-mail.
Mas este problema foi devido ao meu servidor estar passando por manutenções.
Se não teve erro nenhum e não recebeu o e-mail, é possível que seu servidor não esta corretamente configurado.
Um amigo foi realizar o mesmo código no servidor dele. E não funcionou. Teve que entrar em contato com o host e pedir para habilitar o envio de e-mail.
Isto são problemas comuns para quem não possui um servidor dedicado.
Professor valeu me ajudou muito a video aula de formulario
Oi Luiz.
MUito bom esse tutorial. resolveu muito minha vida.
Mas vc poderia me ajudar a resolver esse problema que esta acontecendo:
Todas as vezes que acesso a pagina do formulário… ele me manda um e-mail em branco.
Porque isso acontece?
faltou algo a acrescentar?
Vlw. Muito obrigado!!
Emmanuel isto acontece porque você colocou o código na página. Então toda vez que a pagina for aberta o php vai passar por este trecho de código, enviando o email.
Para resovler o problema, você deve criar um arquivo com o nome envia.php e no <form> você coloca <form action=”envia.php”>
A segunda forma é criando uma condição para executar o código.
Por exemplo.
if(isset($_GET[envia])){
//código
}
Neste exemplo o código só vai ser executado quando existir pagina.php?envia
e o formulário fica assim:
<form action=”?envia=”>
Espero ter ajudado.
Abraços
Luiz , boa tarde.
Vi sua aula no youtube e achei muito interessante.
Além da sua já assisti a várias e não consigo resolver meu problema.
Depois de estruturado esse arquivo php, o que deve ser feito ?
Tenho um blog e não consigo colocar um formulário de contato o que está fazendo muita falta.
Poderia me ajudar ?
Aguardo seu retorno.
Obrigada.
Simone, basta copiar este arquivo php e editalo, como trancando o e-mail para quem vai ser enviado e ajustar os headers.
Feito isto ao abrir a pagina no seu navegador você ja deve receber o email.
Se você usa blog com sistema wordpress você pode usar o pluguin 7-contact que se pode criar formuários de contato facilmente.
Abraços
Olá Luiz.
Muito bom o tutorial. Funcionou perfeitamente comigo com um porém…
Toda vez que entro na página do formulário, automaticamente ele envia o e-mail. Mesmo não preenchendo nenhum campo e nem apertando o botão de enviar…
Tem alguma idéia do que seja?
Um abraço e obrigado
Acabei de ver que alguém já teve a mesma dúvida.
Olá primeiramente parabens, estou acompanhando seu site e esta muito bacana, estou aprendendo bastante com vc, só estou com uma duvida se eu quiser adicionar mais dois campos um para telefone e o ooutro para email, como poderia adicionar.
Att:rodrigo
Olá caro Luiz Azevedo!
Uso linux e tenho me virado para acompanhar as vídeo aulas e nesta eu encontrei um jeito de verificar o envio de mensagens via mail() do php sem ter um servidor de email dedicado. Instalei o Postfix e configurei pra que toda mensagem endereçada a root@ domain.local seja armazenada em /var/mail/nobody. Assim posso testar o seu código e tentar modificações sem precisar enviar por ftp o arquivo php para o servidor de email como disse que. É verdade que não serve para enviar para qualquer email mas serve para fins de aprendizagem. =)
Fica aí a dica para iniciantes como eu.
Abraço
Ola Diego, não me lembro se disse na aula que não era possível. Se falei eu estava errado.
Mas é possível fazer o micro de servidor de email.
O própio XAMPP do windows vem com o mercury se não estou enganado, que faz este serviço.
Mas são tantas configurações que se deve fazer que ficaria complexo de se explicar a video aula. No linux eu não lembro o nome do pacote que se baixa, mas basta instalar e usar.
Se tiver roteador, na maioria dos casos vai ter que abrir a porta.
Seria muitas configurações que talvez quem tem interesse de enviar um simples e-mail não utilizaria.
Mas vlw ai pela dica Diego e se falei que não é possível, peço que me desculpem. É possível, tem que ter um certo conhecimento. Mas o google esta ai para ajudar a todos.
Vlw pela visita.
Parabéns, e obrigado
Ficou tudo perfeito…
acrescentei uma variavel ‘$texto’ com o valor mensagem
e ficou assim:
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$assunto = $_POST['assunto'];
$text= $_POST['mensagem'];
$mensagem .= “Nome: ” .$nome;
$mensagem .= “E-mail: “.$email;
$mensagem .= “Telefone: “.$telefone;
$mensagem .= “Mensagem: “.$texto;
E funcionou perfeitamente!!