Ir para conteúdo
Fórum Script Brasil
  • 0

Formulario de contato não envia o e-mail


Marciarv

Pergunta

Pessoal tenho este formulário de contato no meu site e ele funcionava bem, mas não sei o que aconteceu que agora ele não envia mais o formulario com os dados digitados para o e-mail. Já tentei um monte de coisa e nada pois ele esta funcionando tudo certinho como validação e não apresenta erro algum e pelo contrario da msg enviada com sucesso e td, mas quando olho no e-mail não chega nada pra mim :angry:

<?php

if(isset($_POST['acao']) && $_POST['acao'] == 'enviar'){

require("funcoes/funcoes_mail.php");

$nome = ValidarString($_POST['nome'], "Preencha o campo Nome");

$email = ValidarEmail($_POST['email']);

$titulo = ValidarString($_POST['titulo'], "Preencha o campo Titulo");

$mensagem = ValidarString($_POST['mensagem'], "Preencha o campo Mensagem");

$msg = "<strong>Nome </strong>: $nome <br />

<strong>E-mail </strong>: $email <br />

<strong>Titulo </strong>: $titulo <br />

<strong>Mensagem </strong>: $mensagem <br />

<strong>Enviado em </strong>: ".date("d-m-Y H:i:s");

$destino = "seuemail@seuemail.com.br";

$titulo = "Formulário de Contato";

if(EnviarEmail($destino, $email, $titulo, $msg)){

echo '<script type="text/javascript">

alert("Sr(a), '.$nome.', sua mensagem foi enviada com sucesso!")

window.location="index.php";

</script>';

}else{

echo '<script type="text/javascript">

alert("Sr(a), '.$nome.', sua mensagem não foi enviada")

</script>';

}

}

?>

<!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=iso-8859-1" />

<title>Formul&aacute;rio de Contato</title>

<link href="css/estilo.css" rel="stylesheet" type="text/css" />

</head>

<body>

<form action="" method="post">

<fieldset>

<legend>Formulário de Contato</legend>

<label>

<span>Nome</span>

<input type="text" name="nome" />

</label>

<label>

<span>E-mail</span>

<input type="text" name="email" />

</label>

<label>

<span>Titulo</span>

<input type="text" name="titulo" />

</label>

<label>

<span>Mensagem</span>

<textarea name="mensagem" cols="30" rows="5"></textarea>

</label>

<input type="hidden" name="acao" value="enviar" />

<input type="submit" value="Enviar Formulário" class="btn"/>

</fieldset>

</form>

</body>

</html>

funcoes_mail.php

<?php

function TratarDados($str){

$str = trim($str);

$str = strip_tags($str);

$caracters = array("&", "%");

$str = str_replace($caracters, "", $str);

return $str;

}

function ValidarString($string, $erro){

$string = TratarDados($string);

if(empty($string)){

echo '<script type="text/javascript">alert("'.$erro.'")</script>';

echo '<script type="text/javascript">history.back()</script>';

exit;

}

return $string;

}

function ValidarEmail($email){

$email = TratarDados($email);

if(empty($email)){

echo '<script type="text/javascript">alert("Preencha o campo E-mail")</script>';

echo '<script type="text/javascript">history.back()</script>';

exit;

}

elseif(substr_count($email, "@") !== 1 || substr_count($email, ".") == 0){

echo '<script type="text/javascript">alert("Preencha com um e-mail válido")</script>';

echo '<script type="text/javascript">history.back()</script>';

exit;

}

return $email;

}

function EnviarEmail($destino, $rementente, $titulo, $msg){

$headers = "MIME-Version: 1.0\n";

$headers .= "Content-Type:text/html; charset=iso-8859-1\n";

$headers .= "From: $rementente\n";

$headers .= "Return-Path: $rementente";

return mail($destino, $titulo, $msg, $headers);

}

?>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Pessoal tenho este formulário de contato no meu site e ele funcionava bem, mas não sei o que aconteceu que agora ele não envia mais o formulario com os dados digitados para o e-mail. Já tentei um monte de coisa e nada pois ele esta funcionando tudo certinho como validação e não apresenta erro algum e pelo contrario da msg enviada com sucesso e td, mas quando olho no e-mail não chega nada pra mim :angry:

<?php

if(isset($_POST['acao']) && $_POST['acao'] == 'enviar'){

require("funcoes/funcoes_mail.php");

$nome = ValidarString($_POST['nome'], "Preencha o campo Nome");

$email = ValidarEmail($_POST['email']);

$titulo = ValidarString($_POST['titulo'], "Preencha o campo Titulo");

$mensagem = ValidarString($_POST['mensagem'], "Preencha o campo Mensagem");

$msg = "<strong>Nome </strong>: $nome <br />

<strong>E-mail </strong>: $email <br />

<strong>Titulo </strong>: $titulo <br />

<strong>Mensagem </strong>: $mensagem <br />

<strong>Enviado em </strong>: ".date("d-m-Y H:i:s");

$destino = "seuemail@seuemail.com.br";

$titulo = "Formulário de Contato";

if(EnviarEmail($destino, $email, $titulo, $msg)){

echo '<script type="text/javascript">

alert("Sr(a), '.$nome.', sua mensagem foi enviada com sucesso!")

window.location="index.php";

</script>';

}else{

echo '<script type="text/javascript">

alert("Sr(a), '.$nome.', sua mensagem não foi enviada")

</script>';

}

}

?>

<!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=iso-8859-1" />

<title>Formul&aacute;rio de Contato</title>

<link href="css/estilo.css" rel="stylesheet" type="text/css" />

</head>

<body>

<form action="" method="post">

<fieldset>

<legend>Formulário de Contato</legend>

<label>

<span>Nome</span>

<input type="text" name="nome" />

</label>

<label>

<span>E-mail</span>

<input type="text" name="email" />

</label>

<label>

<span>Titulo</span>

<input type="text" name="titulo" />

</label>

<label>

<span>Mensagem</span>

<textarea name="mensagem" cols="30" rows="5"></textarea>

</label>

<input type="hidden" name="acao" value="enviar" />

<input type="submit" value="Enviar Formulário" class="btn"/>

</fieldset>

</form>

</body>

</html>

funcoes_mail.php

<?php

function TratarDados($str){

$str = trim($str);

$str = strip_tags($str);

$caracters = array("&", "%");

$str = str_replace($caracters, "", $str);

return $str;

}

function ValidarString($string, $erro){

$string = TratarDados($string);

if(empty($string)){

echo '<script type="text/javascript">alert("'.$erro.'")</script>';

echo '<script type="text/javascript">history.back()</script>';

exit;

}

return $string;

}

function ValidarEmail($email){

$email = TratarDados($email);

if(empty($email)){

echo '<script type="text/javascript">alert("Preencha o campo E-mail")</script>';

echo '<script type="text/javascript">history.back()</script>';

exit;

}

elseif(substr_count($email, "@") !== 1 || substr_count($email, ".") == 0){

echo '<script type="text/javascript">alert("Preencha com um e-mail válido")</script>';

echo '<script type="text/javascript">history.back()</script>';

exit;

}

return $email;

}

function EnviarEmail($destino, $rementente, $titulo, $msg){

$headers = "MIME-Version: 1.0\n";

$headers .= "Content-Type:text/html; charset=iso-8859-1\n";

$headers .= "From: $rementente\n";

$headers .= "Return-Path: $rementente";

return mail($destino, $titulo, $msg, $headers);

}

?>

retire as linas que indicam função e de um echo para ver qual erro no momento em que enviar, e verifique se a função mail está abilitada em seu servidor

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...