Carcleo 4 Denunciar post Postado Outubro 29, 2014 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
Beraldo 864 Denunciar post Postado Outubro 29, 2014 De onde vem emailSite? Onde você a cria? É uma constante ou uma variável? Se for variável, você a está usando sem cifrão Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 29, 2014 constante contato@cetisasolar.com.br http://funerariasaopedro.net.br/cetisa/contato.php?acao=formulario Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Outubro 29, 2014 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
Carcleo 4 Denunciar post Postado Outubro 29, 2014 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
Beraldo 864 Denunciar post Postado Outubro 29, 2014 Você está testando em localhost ou no servidor remoto? Em localhost não funcionará, caso você não tenha servidor SMTP configurado Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 29, 2014 Remoto: http://funerariasaopedro.net.br/cetisa/contato.php?acao=formulario Faz um teste lá. Inventa um e-mail só pra passar: aa@bb.com Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Outubro 29, 2014 Tentou executar um script que somente chama a função mail()? Qual foi o resultado? Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 29, 2014 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
Beraldo 864 Denunciar post Postado Outubro 29, 2014 Teste um script com apenas isto: <?php ini_set( 'display_errors', true ); error_reporting( E_ALL | E_STRICT ); mail( "aa@bb.com", "Teste", "Texto" ); só troque o email pelo seu email de teste Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 29, 2014 Mesma coisa: http://funerariasaopedro.net.br/cetisa/teste.php Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Outubro 29, 2014 Talvez seu servidor bloqueie o uso da função mail. Tente usar SMTP remoto. Sugiro usar o PHPMailer, como mostro aqui: http://rberaldo.com.br/enviando-e-mails-com-a-classe-phpmailer/ Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 29, 2014 Vou perguntar lá! Por enquanto, obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 30, 2014 Problema era no servidor!! Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
danilolemoss 0 Denunciar post Postado Outubro 30, 2014 Carcleo, Só falta marcar como resolvido agora... vlw ! Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 30, 2014 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
Beraldo 864 Denunciar post Postado Outubro 30, 2014 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
Carcleo 4 Denunciar post Postado Outubro 30, 2014 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
Carcleo 4 Denunciar post Postado Outubro 30, 2014 estranho Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Outubro 31, 2014 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