0
I am with a form that another programmer made and the emails from the site are no longer being sent, I can not find the error, also I am not very good with php. Someone can identify the mistake?
Follow the file mail.php
, these checks at my view are correct in the function file, but by clicking send email is falling in the if
"Infelizmente seus dados nao puderam ser enviados. Tente novamente mais tarde."
<?php
require_once 'funcoes.php';
//Determina o tipo da codificação da página
header("content-type: text/html; charset=utf-8");
//Extrai os dados do formulário
extract($_GET);
$messageError = '';
//Verifica se algum nome foi digitado
if ($nome != "")
{
$name = utf8_decode($nome);
}
else
{
$messageError.='Insira seu Nome<br/>';
}
//Verifica se algum email foi digitado
if ($email != "")
{
if(verificar_email($email) != 1)
{
$messageError.='Insira um E-mail válido<br/>';
}
else
{
$mail = utf8_decode($email);
}
}
else
{
$messageError.='Insira seu E-mail<br/>';
}
//Verifica se algum telefone foi digitado
$tel = ($telefone != "") ? $telefone : $messageError.='Insira seu Telefone<br/>';
//Verifica se algum message foi digitado
$message = ($mensagem != "") ? utf8_decode($mensagem) : $messageError.='URL Inválida<br/>';
if ($valueContato == 1)
{
if ($estado == "")
$messageError.='Insira um Estado<br/>';
if ($cidade == "")
$messageError.='Insira uma Cidade<br/>';
}
else
if ($valueContato == 2)
{
if ($preco == "")
{
$messageError.='Insira um Preço<br/>';
}
}
if ($valueContato == "" or $valueContato == 2)
{
//Verifica se algum negocio foi digitado
$business = ($negocio != "") ? utf8_decode($negocio) : $messageError.='Selecione um Negócio<br/>';
//Verifica se algum url foi digitado
if ($url != "")
{
if (!validarUrl($url))
{
$messageError.='URL inválida<br/>';
}
else
$site = utf8_decode($url);
}
else
$messageError.='Insira um Endereço<br/>';
}
if ($messageError != "")
{
echo "$messageError";
$messageError = '';
}
else
{
$paraQuem = $valueContato;
if ($paraQuem == "")
$assunto = utf8_decode("Formulário Quero Comprar Domínio e Companhia");
else
if ($paraQuem == 1)
$assunto = utf8_decode("Formulário de Contato Domínio e Companhia");
else
if ($paraQuem == 2)
$assunto = utf8_decode("Formulário Quero Vender Domínio e Companhia");
$estado = utf8_decode($estado);
$cidade = utf8_decode($cidade);
$para = '[email protected]';
$assunto = $assunto;
$corpo = "
<html>
<body>
<p>$assunto</p>
<p>
Nome: <strong>$name</strong><br />
E-mail: <strong>$mail</strong><br />
Telefone: <strong>$tel</strong><br />";
if($valueContato == 1)
$corpo .= "Estado: <strong>$estado</strong><br />
Cidade: <strong>$cidade</strong><br />";
else
if($valueContato == 2)
$corpo .= "Preço: <strong>$preco</strong><br />";
if ($valueContato == "" or $valueContato == 2)
$corpo .="URL: <strong>$site</strong><br />
Negócio: <strong>$business</strong><br />";
$corpo .="
Mensagem:<strong>$message</strong><br />
</p>
</body>
</html>";
$headers = "From: {$nome} <{$email}> \nX-Mailer: PHP/" . phpversion()."\n";
$headers .= "X-Sender: {$para}\n";
$headers .= "X-Mailer: PHP\n";
$headers .= "X-Priority: 1\n";
$headers .= "Return-Path: {$email}\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
// Mensagem resposta
$sent = mail($para,$assunto,$corpo,$headers);
if (!$sent)
{
echo 'Infelizmente seus dados nao puderam ser enviados. Tente novamente mais tarde.';
}
else
{
echo 'Dados enviados com sucesso!';
}
}
?>
This happens on the localhost or production server?
– rray
on the production server.. ta online...
– André
Before displaying the error message add this line
print_r(error_get_last());
should give some details about the error.– rray
will go in php.net, there is the use of the mail function, you will n need to write a lot and will be able to do virtually everything in email
– Murilo Melo
Welcome to Stackoverflow. Just by looking at the code you may not be able to find out what the error is. You need to provide more details. Maybe there is some place where you can find a log or another way to view the error that has occurred in your application.
– Wallace Maxters
added the line but no error appears ..... I wanted to provide more details but I am not able to identify the error, I could not debug
– André
Have you tried using the Phpmailer library with authenticated email ?
– Augusto
so I tried to user the phpmailer library, and now this appearing the following error, from the failure to send the message and appears SMTP server error: 5.7.0 Must Issue to STARTTLS command first
– André