Ir ao conteúdo
  • Cadastre-se

Tutorial: enviando e-mail via script PHP


pisicohtico

Posts recomendados

Salve amigos do Clube do Hardware :palmas: .

Vamos aprender a enviar uma mensagem de um site para um e-mail de uma forma bem simples e passo a passo através de um script PHP desenvolvido por mim com a ajuda dos amigos netofire e bermonruf.

1º Passo: Criando o arquivo PHP

Abra o notepad (ou um editor de códigos que preferir) e cole o seguinte código:

<?
if($_GET[acao]=='verifica') {
extract($_POST);
}
else {
die ("Acesso negado!");
}

global $email; //função para validar a variável $email no script todo

$data      = date("d/m/y");                     //função para pegar a data de envio do e-mail
$hora      = date("H:i");                       //para pegar a hora com a função date

// defino o corpo do e-mail antes
$corpo = "DEFINA AQUI O CORPO DO SEU E-MAIL";

//aqui envia o e-mail para você
$envia = mail ("SEU E-MAIL", "ASSUNTO", $corpo, "From: VARIÁVEL DO CAMPO DE E-MAIL");

if ($envia) {
     Header("location:ENDEREÇO DA PÁGINA DE OBRIGADO"); //essa é a página de obrigado.
     }
else {
echo "Problemas no envio, por favor tente novamente";
echo "[url="'ENDEREÇO"]Voltar[/url]";
}

?>

2º Passo: Configurando o script.

Após ter colado o código, procure as linhas listadas e faça as seguintes alterações:

$corpo: Nesta parte você irá definir a a estrutura da mensagem que irá chegar ao seu e-mail. Escreva ai os nomes dos campos quem contém seu formulário com um símbolo de $ (sifrão) na frente, também escreva \n para ir para próxima linha.

Exemplo: Suponhamos que o meu formulário de contato tenha 4 campos sendo eles, Nome, E-mail, Assunto e Mensagem, nomeados respectitivamente de nome, email, assunto e mensagem. meu $corpo ficaria assim:

$corpo = "Nome: $nome\nE-mail: $email\nMensagem: $mensagem" (Se preferir, você também pode inserir as variáveis $data e $hora, assim você também verá o horário em que a pessoa enviou a mensagem)

Então a mensagem que chegaria ao meu e-mail seria assim:

Nome: Pisicohtico Sou Legal

E-mail: [email protected]

Mensagem: Gostei muito deste tutorial, parabéns.

Ué mais seu formulário não tinha 4 campos? cadê o $assunto?

Vamos usar ele agora, ele vai facilitar muito a tua vida na hora de ler os e-mails.

$envia: Aqui você vai definir o endereço de e-mail que vai receber a mensagem e outras coisas mais. Como esta é uma das configurações mais simples vou colocar logo como ficaria.

$envia = mail ("[email protected]", "$assunto", "$corpo", "From: $email");

E foi aí que nós utilizamos o campo $assunto, assim você verá logo do que se trata a mensagem antes de abri-la.

Agora a ultima parte (Ufa!)

if ($envia) {

Header("location:ENDEREÇO DA PÁGINA DE OBRIGADO"); //essa é a página de obrigado.

}

else {

echo "Problemas no envio, por favor tente novamente";

echo "ENDEREÇO"]Voltar";

}

Parabéns, você já acabou de configurar.

Salve o arquivo como envia.php e hospede ele em um servidor que dê suporte a PHP.

IMPORTANTE: Se você utilizar um gerenciador FTP para enviar os arquivos, não se esqueça de enviar seu arquivo PHP em modo ASCII e dar um definir as permissões para:

Owner: Read, Write, Execute

Group: Read, Execute

World: Read, Execute

Se você usar um host Linux, é so dar um CHMOD 755

Ah! e não esqueça de configurar a action de seu formulário para o endereço do arquivo envia.php e no método POST.

Alguns problemas e soluções

1- Quando eu tento enviar o formulário aparece uma mensagem de erro do meu servidor Web (Erro 403 ou algo assim).

Provavelmente você deve ter enviado o arquivo no modo Binário. Verifique também se as permissões estão configuradas conforme o tutorial.

2- Quando eu tento enviar o formulário aparece apenas uma página em branco.

Esse tipo de erro pode ter infinitas razões, os mais frequêntes são:

a ) O servidor que você está hospedando seu site não suporta PHP.

b ) Verifique cuidadosamente por erros no código HTML do seu formulário.

3- Quando tento enviar o formulário, aparece um erro 404.

Você não enviou o arquivo para seu servidor ou digitou o endereço errado na action do seu formulário

4- Quando envio o formulário, aparece a página de obrigado, mais a mensagem não chegou ao meu e-mail.

a ) Verifique se você digitou o endereço de e-mail corretamente no script PHP.

b ) Verifique a caixa de lixo eletrônico do seu e-mail.

Vale lembrar alguns servidores de e-mail demoram mais para processar certo tipo de mensagens do que outros (variando desde segundo até horas), então aguarde um pouco. Também em menores casos pode acontecer do seu servidor de hospedagem não estar interpretando o script corretamente, por isso recomendo testar em outro servidor antes de ficar :bravo: e sair quebrando tudo :muro: .

Bom espero que tenham gostado e até a próxima.

Abraços,

pisicohtico :-BEER:P

Link para o comentário
Compartilhar em outros sites

  • 4 anos depois...

segue meu formulario como criei

pagina do formulario:

<!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>Formulário de Orçamento</title>

<script language="JavaScript" type="text/JavaScript">

<!--

function MM_reloadPage(init) { //reloads the window if Nav4 resized

if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {

document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

}

MM_reloadPage(true);

//-->

</script>

</head>

<body>

<form action="form.php" method="post" name="form1" target="_self" id="form1">

<div id="Layer1" style="position:absolute; left:11px; top:46px; width:133px; height:19px; z-index:1">Plano

individual:

<input type="radio" name="individual" value="radiobutton" />

</div>

<div id="Layer3" style="position:absolute; left:449px; top:45px; width:205px; height:11px; z-index:3">Plano

por entidade de classe:

<input type="radio" name="classe" value="radiobutton" />

</div>

<div id="Layer2" style="position:absolute; left:228px; top:45px; width:136px; height:19px; z-index:2">Plano

empresárial:

<input type="radio" name="empresarial" value="radiobutton" />

</div>

<p> </p>

<p> </p>

<p>Nome completo:

<input name="nome" type="text" id="nome" size="40" maxlength="60" />

Fone:

<input name="dd" type="text" id="dd" size="4" maxlength="2" />

-

<input name="fone" type="text" id="fone" size="20" maxlength="8" />

</p>

<p>E-mail:

<input name="email" type="text" id="email" size="50" maxlength="60" />

</p>

<p>Quantidade de pessoas por faixa etária:</p>

<p> 00-18:

<input name="a0018" type="text" id="a0018" size="4" maxlength="3" />

19-23:

<input name="a1923" type="text" id="a1923" size="4" maxlength="3" />

24-28:

<input name="a2428" type="text" id="a2428" size="4" maxlength="3" />

29-33:

<input name="a2933" type="text" id="a2933" size="4" maxlength="3" />

</p>

<p>34-38:

<input name="a3438" type="text" id="a3438" size="4" maxlength="3" />

39-43:

<input name="z3943" type="text" id="z3943" size="4" maxlength="3" />

44-48:

<input name="z4448" type="text" id="z4448" size="4" maxlength="3" />

49-53:

<input name="z4953" type="text" id="z4953" size="4" maxlength="3" />

</p>

<p>54-58:

<input name="z5458" type="text" id="z5458" size="4" maxlength="3" />

59-ou mais:

<input name="a59" type="text" id="a59" size="4" maxlength="3" />

</p>

<p><br />

<strong>Duvidas:</strong><br />

<label>

<textarea name="mensagem" id="textarea2" cols="45" rows="5"></textarea>

</label>

</p>

<br />

<input type="submit" name="button" id="button" value="Enviar" />

<input name="redefinir" type="reset" id="redefinir" value="Redefinir" />

</form>

</body>

</html>

segue agora o arquivo php form que da a ação ao formulario:

<?php

$individual = "$_POST[individual]";

$empresarial = "$_POST[empresarial]";

$classe = "$_POST[classe]";

$nome = "$_POST[nome]";

$receptor = "[email protected]";

$mensagem = "$_POST[mensagem]";

$dd = "$_POST[dd]";

$fone = "$_POST[fone]";

$email = "$_POST";

$a0018 = "$_POST[a0018]";

$a1923 = "$_POST[a1923]";

$a2428 = "$_POST[a2428]";

$a2933 = "$_POST[a2933]";

$a3438 = "$_POST[a3438]";

$a3943 = "$_POST[a3943]";

$a4448 = "$_POST[a4448]";

$a4953 = "$_POST[a4953]";

$a5458 = "$_POST[a5458]";

$a59 = "$_POST[a59]";

$header = "From: ". $Nome . " <" . $email . ">\r\n";

{

mail($receptor, $nome, $mensagem, $header);

echo "$nome, seu emai foi enviado com sucesso!";

}

?>

<br />

<a href="or%E7amento.htm">Voltar</a>

se alguem puder me ajudar ele esta hospedado em

o servidor que estou usando para testar é o

www.t35.com é um servidor gratuito mas, logo ele será hospedade no uolhost

muito obrigado pela força desde já

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...