Ir para conteúdo

Arquivado

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

Carcleo

mail() travando

Recommended Posts

Pessoal, estou enviando e-mail conforme abaixo.

 

Acontece que quando chamamos a função mail() o form não vai e trava.

 

Onde será que esta o erro?

 

Obs.: Testei o testo e deu certinho

 

  
  <?php
  if (isset($_GET["acao"]) && $_GET["acao"]=="envia") 
  {  
 
    switch  ($_POST["interesseForm"])
{
case  "compras" : 
     $_POST["interesseForm"] = "Compra de Produtos";
 break;
case  "curso" : 
     $_POST["interesseForm"] = "Curso de Instalador";
 break;
case  "duvidas" : 
     $_POST["interesseForm"] = "Dúvidas";
 break;
case  "projetos" : 
     $_POST["interesseForm"] = "Projetos e Consultoria";
 break;
case  "reclamacao" : 
     $_POST["interesseForm"] = "Reclamação";
 break;
case  "trabalhe" : 
     $_POST["interesseForm"] = "Trabalhe Conosco";
 break;
case  "visita" : 
     $_POST["interesseForm"] = "Visita Técnica";
 break;
case  "outros" : 
     $_POST["interesseForm"] = "Outros";
 break;
}
  
$headers  = "MIME-Version: 1.1\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\n"; 
$headers .= "From:".$_POST["nomeForm"]."<".$_POST["emailForm"].">\r\n";
$headers .= "Return-Path: ".emailSite."\r\n"; // return-path
 
$assunto = "Email enviado pelo site da Cetisa";
 
$texto  = "<h2>Email enviado pelo site da Cetisa</h2><br />";
$texto .= "<b>Nome:</b> ".$_POST["nomeForm"]."<br /><br />";
$texto .= "<b>Telefone:</b> ".$_POST["telForm"]."<br /><br />";
$texto .= "<b>E-mail:</b> ".$_POST["emailForm"]."<br /><br />";
$texto .= "<b>Intersse:</b> ".$_POST["interesseForm"]."<br /><br />";
$texto .= "<b>Como nos conheceu:</b> ".$_POST["conheceuForm"]."<br /><br />";
$texto .= "<b>Texto:</b><br />".$_POST["textoForm"]."<br />";
  
  
    $envio = mail (emailSite, $assunto, $texto, $headers);
 
if($envio)
{
echo "<div style='text-align:center'><h3>Mensagem enviada com sucesso</h3></div><br /><br />";
}
else 
{
echo "<div style='text-align:center'><h3>Erro no envio da mensagem.<br />Por favor, tente novamente!</h3></div><br /><br />";  }
 
     echo "<div style='text-align:center'><a href='javascript:history.go(-1)'><img src='_img/voltar.png' title='Voltar' /></a><br /><br />"; 
  }
  ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Habilite todas as mensagens de erro, como mostrado aqui

http://forum.imasters.com.br/topic/375800-orientaes-para-uma-boa-participao/

 

Faça um teste em um arquivo que chama apenas a função mail(), configurando também as exibições de erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tenho isso habilitado no inicio das minhas páginas

O que acorre é que ao submeter o form, até 1 linha antes do mail() funciona.

 

Mando imprimir,todo o $_POST e tudo mais.

 

Mas, ao rodar mail(), trava

 

Vou postar dessa forma com a impressão do post

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim? Não entendi!

Testou lá?


Como assim? Não entendi!
Testou lá?
Tentei até assim e travou do mesmo jeito:
  <?php
  if (isset($_GET["acao"]) && $_GET["acao"]=="envia") 
  {  
 
    $envio = mail ("aa@bb.com", "Teste", "Texto");
 
if($envio)
{
echo "<div style='text-align:center'><h3>Mensagem enviada com sucesso</h3></div><br /><br />";
}
else 
{
echo "<div style='text-align:center'><h3>Erro no envio da mensagem.<br />Por favor, tente novamente!</h3></div><br /><br />";  }
 
     echo "<div style='text-align:center'><a href='javascript:history.go(-1)'><img src='_img/voltar.png' title='Voltar' /></a><br /><br />"; 
  }
  ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
rsrs, ainda não esta resolvido não.


Ainda preciso de vocês.


Seguinte:


O pessoal do servidor me disse que agora só com smtp autenticado e me pássou para usar o phpMailer mas estou apanhando um pouco.


Eis o código que estou usando:


<?php
if (isset($_GET["acao"]) && $_GET["acao"]=="envia")
{

$headers = "MIME-Version: 1.1\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\n";
$headers .= "From:".$_POST["nomeForm"]."<".$_POST["emailForm"].">\r\n";

$assunto = "Email enviado pelo site da Cetisa";

$texto = "<h2>Email enviado pelo site da ".tituloCabecalho."</h2><br />";
$texto .= "<b>Nome:</b> ".$_POST["nomeForm"]."<br /><br />";
$texto .= "<b>Telefone:</b> ".$_POST["telForm"]."<br /><br />";
$texto .= "<b>E-mail:</b> ".$_POST["emailForm"]."<br /><br />";
$texto .= "<b>Intersse:</b> ".$_POST["interesseForm"]."<br /><br />";
$texto .= "<b>Como nos conheceu:</b> ".$_POST["conheceuForm"]."<br /><br />";
$texto .= "<b>Texto:</b><br />".$_POST["textoForm"]."<br />";

print $texto;

include_once("_global/_phpMailer/class.phpmailer.php");
//include_once("_global/_phpMailer/PHPMailerAutoload.php");

$destinatarios=emailSite;

$To = $destinatarios;
$Subject = $assunto;
$Message = $texto;

$nomeEnvia = $_POST["nomeForm"];
$usuario = $_POST["emailForm"];
$senha = "1234";

$Host = 'smtp.'.substr(strstr($usuario, '@'), 1);
$Username = $usuario;
$Password = $senha;
$Port = "587";

$mail = new PHPMailer();
$body = $Message;
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = $Host; // SMTP server
$mail->SMTPDebug = 0; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = $Port; // set the SMTP port for the service server
$mail->Username = $Username; // account username
$mail->Password = $Password; // account password

$mail->SetFrom($usuario, $nomeEnvia);
$mail->Subject = $Subject;
$mail->MsgHTML($body);
$mail->AddAddress($To, "");

if(!$mail->Send())
{
$mensagemRetorno = "<div style='text-align:center'><h3>Erro no envio da mensagem.<br />Por favor, tente novamente!</h3></div><br /><br />". print($mail->ErrorInfo);
}
else
{
$mensagemRetorno = "<div style='text-align:center'><h3>Mensagem enviada com sucesso</h3></div><br /><br />";
}
echo "<div style='text-align:center'><a href='javascript:history.go(-1)'><img src='_img/voltar.png' title='Voltar' /></a><br /><br />";
}
?>

Dá o seguinte erro:


Fatal error: Class 'SMTP' not found in /var/www/html/funerariasaopedro.net.br/web/cetisa/_global/_phpMailer/class.phpmailer.php on line 1195

inha 1195


public function getSMTPInstance()
{
if (!is_object($this->smtp)) {
$this->smtp = new SMTP; //Essa 1195
}
return $this->smtp;
}



Dúvidas:

Quem envia é o meu cliente $_POST["emailForm"]

Envia Para: mim: emailSite


Senha? Não entendi.


Me ajudem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é devido à falta do class.smtp.php. Tem que deixar esse arquivo no mesmo diretório de class.phpmailer.php

 

Sobre usuário e senha, esses são os dados de autenticação no seu servidor SMTP. Não tem a ver com o email/username do usuário. Geralmente são os mesmos dados que você usa para acessar CPanel e FTP

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois é. O que pega é que esses 2 arquivos estão lá


Mudei para o esquema do site

 

http://central.meganick.com.br/knowledgebase/90/Como-corrigir-o-erro-Deprecated-Function-ereg-is-deprecated.html

 

E agora o erro é de conexão com o servidor

 

SMTP Error: Could not connect to SMTP host.

 

// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->IsSMTP(); // Define que a mensagem será SMTP
$mail->Host = "smtp.cetisasolar.com.br"; // Endereço do servidor SMTP (caso queira utilizar a autenticação, utilize o host smtp.seudomínio.com.br)
$mail->SMTPAuth = true; // Usar autenticação SMTP (obrigatório para smtp.seudomínio.com.br)
$mail->Username = 'user'; // Usuário do servidor SMTP (endereço de email)
$mail->Password = 'pass'; // Senha do servidor SMTP (senha do email usado)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parcialmente resolvido.

 

Apenas um problema agora

 

Como meu sistema é o cliente que envia o e-mail para mim e não o contrario, o phpMailler não aceita o e-mail do cliente com Sender pela fato de que ele não esta no mesmo domínio.

 

Me parece que esse phpMailler foi projetado para uso em malas diretas.

 

Algum recuroso para o $mail->Sender aceitar e-mail de fora?

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.