Ir para conteúdo

Arquivado

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

Wagner C.

Formulário de contato não funciona na minha hospedagem UOLHOST

Recommended Posts

A situação é a seguinte tenho dois clientes diferentes X e Y. o site do cliente X já esta hospedado no UOLHOST e tudo funciona perfeitamente bem. Porém hoje hospedei o site do cliente Y mas o formulário de contato não envia o e-mail.

 

Testando esse mesmo do cliente Y na outra hospedagem consigo usar o formulário de contato perfeitamente.

 

Abaixo envio o código para avaliação.

 

<?php

	if($_POST['nome'] == "" || $_POST['mail'] == "" || $_POST['telefone'] == "" || $_POST['mensagem'] == "")
	{
		header("location:contato.php?erro=null");
	}else
	{

		$mensagem = "Nome: ".$_POST['nome']."\n";
		$mensagem .= "Email: ".$_POST['mail']."\n";
		$mensagem .= "Telefone: ".$_POST['telefone']."\n";
		$mensagem .= "Assunto: ".$_POST['assunto']."\n";
		$mensagem .= "Mensagem: ".$_POST['mensagem'];


		$headers = "MIME-Version: 1.1\r\n";
		$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
		$headers .= "From: informacao@aqui coloquei meu dominio.com.br\r\n"; // remetente
		$headers .= "Return-Path: informacao@aqui coloquei meu dominio.com.br\r\n"; // return-path
		$envio = mail("informacao@aqui coloquei meu dominio.com.br", $_POST['nome']." - ".$_POST['assunto'], $mensagem, $headers);
 
	if($envio)
	{
 		echo "<script>alert('Mensagem enviada com sucesso!')</script>";
 		echo "<script>location.href=('contato.php');</script>";
	}else
 		echo "<script>alert('Mensagem não pôde ser enviada!')</script>";
 		echo "<script>location.href=('contato.php?erro=null');</script>";
	}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testando esse mesmo do cliente Y na outra hospedagem consigo usar o formulário de contato perfeitamente.

pode ser versões diferentes do php ou configurações.

 

coloque essas 2 linhas no inicio da pagina:

 

ini_set('display_errors', 1);
error_reporting(E_ALL);

 

 

aparece alguma mensagem de erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser erro nas quebras de linha e retorno de carro dos "headers".

 

Para garantir que funcione em qualquer ambiente (Linux ou Windows) use a constante PHP_EOL do PHP em vez de "\r\n".

 

Outro detalhe, você está quebrando linha na última linha do cabeçalho, na última linha não deve ser quebrada.

 

Tente desta forma:

 

 

$headers  = 'MIME-Version: 1.1' . PHP_EOL;
$headers .= 'Content-type: text/plain; charset=iso-8859-1' . PHP_EOL;
$headers .= 'From: informacao@aqui coloquei meu dominio.com.br' . PHP_EOL;
$headers .= 'Return-Path: informacao@aqui coloquei meu dominio.com.br';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leozitho corrigi o que foi sugerido, mas ainda não recebo a mensagem no e-mail.

 

O formulário sempre que é enviado posta a mensagem "Mensagem enviada com sucesso!"

 

O problema é só porque usando meu domínio adquirido para esta página que vou usar, meus formulários não enviam o e-mail.

 

Tenho também outra conta no Uolhost e hospedei esses mesmo arquivos lá, e lá funciona. Pode ser como o Shini disse diferentes versôes do php ou configurações diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente não tem mais nenhum erro em seu código, e se a função mail está retornando TRUE é porque o PHP está conseguindo enviar a mensagem, o problema deve estar no seu host.

 

A maioria das empresas de hospedagem obrigam usar o mesmo domínio da hospedagem no "Return-Path" como forma de evitar SPAM. O e-mail que você está colocando no "Return-Path" tem o mesmo domínio da hospedagem?

 

Você já considerou enviar o e-mail usando o protocolo SMTP? Existem bibliotecas prontas para isso, uma das mais conhecidas é o PHPMailer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite.

 

Vejam bem testei mais um formulário de contato...

 

<?php

include_once('phpmailer.php'); //Chama o arquivo phpmailer.php com as funções para realizar o envio.

//#########################################
// Recebe as informações do formulário
//#########################################

$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];

//#########################################
// Dados da conta de e-mail que fará o envio
//#########################################

$smtp = new Smtp("smtp.meu dominio.com.br"); //Endereço do SMTP, geralmente localhost.
$smtp->user = "informacao@meu dominio.com.br";  //Conta de email
$smtp->pass = "minha senha"; //Senha da Conta de e-mail.
$smtp->debug = false; //Somente para usuários avançados que desejam o log do envio para testes.

//#########################################
// Envio do formulário
//#########################################

$to = "informacao@meu dominio.com.br"; //Informe aqui o e-mail que deve receber a mensagem do formulário.
$from = $email;
$subject = "Contato - " . $assunto;
$msg = $mensagem;

	if (isset($_POST['submit'])) {
		if($nome && $email && $assunto && $mensagem) {
				if($smtp->Send($to, $from, $subject, $msg)){
					echo "<script>alert('Contato enviado!');</script>";
					echo "<script>window.location = 'index.php';</script>"; //Altere aqui para o endereço de sua página.
					exit;
				}
	   }

	   else {
		  	echo "<script>alert('Preencha todos os campos!');</script>";
			echo "<script>window.location = 'formulario.html';</script>"; //Altere aqui para o endereço de seu formulário
			exit;
	   }

	}

?>

 

<?php

class Smtp{

var $conn;
var $user;
var $pass;
var $debug = false;

function Smtp($host){
  $this->conn = fsockopen($host, 25, $errno, $errstr, 30);
  $this->Put("EHLO $host");
}
function Auth(){
  $this->Put("AUTH LOGIN");
  $this->Put(base64_encode($this->user));
  $this->Put(base64_encode($this->pass));
}
function Send($to, $from, $subject, $msg){

    $this->Auth();
  $this->Put("MAIL FROM: " . $from);
  $this->Put("RCPT TO: " . $to);
  $this->Put("DATA");
  $this->Put($this->toHeader($to, $from, $subject));
  $this->Put("\r\n");
  $this->Put($msg);
  $this->Put(".");
    $this->Close();
  if(isset($this->conn)){
  return true;
  }else{
  return false;
  }
}
function Put($value){
  return fputs($this->conn, $value . "\r\n");
}
function toHeader($to, $from, $subject){
  $header  = "Message-Id: <". date('YmdHis').".". md5(microtime()).".". strtoupper($from) ."> \r\n";
  $header .= "From: <" . $from . "> \r\n";
  $header .= "To: <".$to."> \r\n";
  $header .= "Subject: ".$subject." \r\n";
  $header .= "Date: ". date('D, d M Y H:i:s O') ." \r\n";
  $header .= "X-MSMail-Priority: High \r\n";
  return $header;
}
function Close(){
  $this->Put("QUIT");
  if($this->debug == true){
  while (!feof ($this->conn)) {
    echo fgets($this->conn) . "<br>\n";
  }
  }
  return fclose($this->conn);
}
}

?>

Porém mais uma vez a mensagem não é enviada. Desta vez ocorre um erro.

 

PHP Warning: fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: unable to connect to smtp.meu dominio.com.br:25 (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

Compartilhar este post


Link para o post
Compartilhar em outros sites

POR FAVOR, ALGUEM PODE ME AJUDAR? ESTE CODIGO ESTA DANDO ERRO ABAIXO

 

A página que você tentou acessar não existe ou foi movida.

Suas causas provávéis podem ser:

  • Você clicou em um link desatualizado em outro site
  • Você digitou uma URL inválida

 

ABAIXO CODICO

 

 

 

<br />

<p class="ErrorMessage" style="display: %%GLOBAL_HideFormError%%">

%%LNG_BadContactFormCaptcha%%

</p>



<form action="%%GLOBAL_ShopPath%%/paginas.php?action=sendContactForm" method="post" id="ContactForm" class="PL20">

<input type="hidden" name="pagina_id" id="pagina_id" value="%%GLOBAL_PaginaId%%" />

<div class="FormContainer HorizontalFormContainer">

<dl>

<dt style="display: %%GLOBAL_HideFullName%%">   %%LNG_ContactName%%:</dt>

<dd style="display: %%GLOBAL_HideFullName%%"><input type="text" name="contact_fullname" id="contact_fullname" class="Textbox Field200" value="%%GLOBAL_ContactName%%" /></dd>



<dt><span class="Required">*</span>  %%LNG_ContactEmail%%:</dt>

<dd><input type="text" name="contact_email" id="contact_email" class="Textbox Field200" value="%%GLOBAL_ContactEmail%%" /></dd>



<dt style="display: %%GLOBAL_HideCompanyName%%">   %%LNG_ContactCompanyName%%:</dt>

<dd style="display: %%GLOBAL_HideCompanyName%%"><input type="text" name="contact_companyname" id="contact_companyname" class="Textbox Field200" value="%%GLOBAL_ContactCompanyName%%" /></dd>



<dt style="display: %%GLOBAL_HidePhone%%">   %%LNG_ContactPhone%%:</dt>

<dd style="display: %%GLOBAL_HidePhone%%"><input type="text" name="contact_phone" id="contact_phone" class="Textbox Field200" value="%%GLOBAL_ContactPhone%%" /></dd>



<dt style="display: %%GLOBAL_HideOrderNo%%">   %%LNG_ContactOrderNo%%:</dt>

<dd style="display: %%GLOBAL_HideOrderNo%%"><input type="text" name="contact_orderno" id="contact_orderno" class="Textbox Field200" value="%%GLOBAL_ContactOrderNo%%" /></dd>



<dt style="display: %%GLOBAL_HideRMANo%%">   %%LNG_ContactRMANo%%:</dt>

<dd style="display: %%GLOBAL_HideRMANo%%"><input type="text" name="contact_rma" id="contact_rma" class="Textbox Field200" value="%%GLOBAL_ContactRMA%%" /></dd>



<dt><span class="Required">*</span>  %%LNG_ContactQuestion%%:</dt>

<dd><textarea name="contact_question" id="contact_question" class="Field300" rows="5" cols="50">%%GLOBAL_ContactQuestion%%</textarea><div id="SearchResults"></div></dd>



<dt style="display: %%GLOBAL_HideCaptcha%%"><span class="Required">*</span>  %%LNG_CaptchaVerification%%:</dt>

<dd style="display: %%GLOBAL_HideCaptcha%%">

<p class="Warning">%%LNG_CaptchaIntro%%</p>

%%GLOBAL_CaptchaImage%%<br />

<input style="margin-top:5px; width:105px" type="text" name="captcha" id="captcha" class="Textbox" />

</dd>

</dl>

<p class="Submit">

<input type="submit" value="%%LNG_SendForm%%" class="ContactButton" />

</p>

</div>

</form>



%%Panel.ContactFormJavaScript%%



%%GLOBAL_ARSPanel%%

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma dica que eu dou é você padronizar seus e-mails utilizando o PHPMailer. Eu tinha esses mesmos problemas com e-mail, depois que comecei a utilizar o PHPMailer, simplesmente acabaram minhas dores de cabeça:

 

http://blog.thiagobelem.net/enviar-e-mails-pelo-php-usando-o-phpmailer/

 

Artigo excelente do autor Thiago Belem. Através dele você aprende a configurar o PHPMailer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.