Ada 6 Denunciar post Postado Abril 4, 2016 Boa noite! Ao fazer um formulário de mensagem com PHP por autenticação apresenta o seguinte erro: "PHP Fatal error: Class 'SMTP' not found in E:\home\adagon2\adagon.com.br\web\PHPMailer\class.phpmailer.php on line 1442" Alguém por gentileza poderia me orientar? Desde já agradeço a atenção! Compartilhar este post Link para o post Compartilhar em outros sites
DSerma 19 Denunciar post Postado Abril 4, 2016 Sua aplicação não encontrou a classe SMTP no arquivo class.phpmailer.php; Esta classe existe neste arquivo? Compartilhar este post Link para o post Compartilhar em outros sites
Ada 6 Denunciar post Postado Abril 5, 2016 Olá Sim, e ele acusa erro na linha 1442 desse arquivo. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 5, 2016 Como inclui os arquivos e como instanciou a classe PHPMailer? Recomendo usar o Autoloader do próprio PHPMailer. Veja este meu artigo Compartilhar este post Link para o post Compartilhar em outros sites
Ada 6 Denunciar post Postado Abril 6, 2016 boa noite Rberaldo usei o PHPMailerAutoload invés do class.phpmailer e parou de dar o erro na linha 1442 mas agora aparece o seguinte erro? Erro : SMTP Connect() falhou. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting grata! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 6, 2016 Isso é um erro de comunicação com o SMTP Habilite o SMTPDebug para acompanhar as mensagens e ver onde está o problema. É bem provável que você tenha usado credenciais erradas, como usuário, senha, criptografia ou porta incorretos Compartilhar este post Link para o post Compartilhar em outros sites
Ada 6 Denunciar post Postado Abril 7, 2016 o erro estava aqui = $mailer->SMTPSecure = 'ssl'; mudei para 'false' e agora não da mais esse erro. mas mudei um pouco meu código para atender minhas necessidades e agora aparece esse erro: PHP Parse error: syntax error, unexpected 'endif' (T_ENDIF) Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Abril 7, 2016 Esse erro ai é de má formação de código. Provável q você comeu algum ponto e virgula ou não fechou uma chave. Tenta verificar o número da linha q ele aponta. Compartilhar este post Link para o post Compartilhar em outros sites
Ada 6 Denunciar post Postado Abril 7, 2016 Olá Gabriel... Não sou profissional da área, sou apenas uma curiosa. Peguei esse código de uma vídeo aula e adaptei conforme minhas necessidades. Verifiquei e acho que não esqueci nenhum ponto ou chave conforme vc citou. Eu tinha um formulário em PHP que funcionava normal, mas meu provedor mudou para esse tipo de autenticação e estou sendo obrigada a mudar. Vou colar o código aqui se vc puder ver para mim o que está de errado eu agradeço. Desde já agradeço pela atenção! <?php require "phpmailer/PHPMailerAutoload.php"; if(isset($_POST['envia'])); $nome = addslashes(trim($_POST['nome'])); $ddd = addslashes(trim($_POST['ddd'])); $telefone = addslashes(trim($_POST['telefone'])); $email = addslashes(trim($_POST['email'])); $assunto = addslashes(trim($_POST['assunto'])); $mensagem = addslashes(trim($_POST['mensagem'])); $receber = "teste@adagon.com.br"; $erro = array(); if(empty($nome)): $erro[] = "Digite um nome"; elseif(empty($ddd)): $erro[] = "Digite um ddd"; elseif(empty($telefone)): $erro[] = "Digite um telefone"; elseif(empty($email)): $erro[] = "Digite um e-mail"; elseif(!filter_var($email,FILTER_VALIDATE_EMAILE)): $erro[] = "E-mail inválido!"; elseif(empty($assunto)): $erro[] = "Digite um assunto"; elseif(empty($mensagem)): $erro[] = "Digite uma mensagem"; else: $mail = new PHPMailer(); //$mail->IsMail(); $mail->isSMTP(); $mail->Host = 'smtp.adagon.com.br'; $mail->SMTPAuth = true; $mail->Username = 'teste@adagon.com.br'; $mail->Password = '123456'; //essa não é a senha verdadeira, só ex. $mail->Port = 587; $mail->SMTPSecure = 'false'; $mail->IsHTML(true); $mail->CharSet = 'UTF-8'; $mail->From = $email; $mail->FromName = $nome; $mail->AddAddress($receber); $mail->Subject = $assunto; $mail->Body = $mensagem; if($mail->Send()): echo "E-mail enviado com sucesso!"; else: echo "Erro ao enviar o email ".$mail->ErrorInfo; endif; endif;endif;?> Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Abril 7, 2016 Desculpa se eu fui rude com a palavra 'má formação'. Fiz um teste aqui e só retirei o endif que estava sobrando no final. veja se corrige. Recomendo deixar ativo os erros pelo menos no período de implementação do seu código. ini_set('display_errors', true); error_reporting(E_ALL); Segue o seu código alterado: <?php require "phpmailer/PHPMailerAutoload.php"; if(isset($_POST['envia'])); $nome = addslashes(trim($_POST['nome'])); $ddd = addslashes(trim($_POST['ddd'])); $telefone = addslashes(trim($_POST['telefone'])); $email = addslashes(trim($_POST['email'])); $assunto = addslashes(trim($_POST['assunto'])); $mensagem = addslashes(trim($_POST['mensagem'])); $receber = "teste@adagon.com.br"; $erro = array(); if(empty($nome)): $erro[] = "Digite um nome"; elseif(empty($ddd)): $erro[] = "Digite um ddd"; elseif(empty($telefone)): $erro[] = "Digite um telefone"; elseif(empty($email)): $erro[] = "Digite um e-mail"; elseif(!filter_var($email,FILTER_VALIDATE_EMAILE)): $erro[] = "E-mail inválido!"; elseif(empty($assunto)): $erro[] = "Digite um assunto"; elseif(empty($mensagem)): $erro[] = "Digite uma mensagem"; else: $mail = new PHPMailer(); //$mail->IsMail(); $mail->isSMTP(); $mail->Host = 'smtp.adagon.com.br'; $mail->SMTPAuth = true; $mail->Username = 'teste@adagon.com.br'; $mail->Password = '123456'; //essa não é a senha verdadeira, só ex. $mail->Port = 587; $mail->SMTPSecure = 'false'; $mail->IsHTML(true); $mail->CharSet = 'UTF-8'; $mail->From = $email; $mail->FromName = $nome; $mail->AddAddress($receber); $mail->Subject = $assunto; $mail->Body = $mensagem; if($mail->Send()): echo "E-mail enviado com sucesso!"; else: echo "Erro ao enviar o email ".$mail->ErrorInfo; endif; endif; // endif; Compartilhar este post Link para o post Compartilhar em outros sites
Ada 6 Denunciar post Postado Abril 7, 2016 Gabriel em momento algum imaginei que você tenha sido rude, pelo contrário, esta sendo atencioso e esta tentando me ajudar. Depois de modificar algumas coisas, estou recebendo o email vindo do formulario do site, mas não estou recebendo os dados, tais como nome, ddd, telefone, etc. O unico campo que recebo é o da mensagem. vou postar novamente meu codigo: <?php require "phpmailer/PHPMailerAutoload.php"; if(isset($_POST['envia'])); $nome = addslashes(trim($_POST['nome'])); $ddd = addslashes(trim($_POST['ddd'])); $telefone = addslashes(trim($_POST['telefone'])); $email = addslashes(trim($_POST['email'])); $assunto = addslashes(trim($_POST['assunto'])); $mensagem = addslashes(trim($_POST['mensagem'])); $erro = array(); if(empty($nome)): $erro[] = "Digite um nome"; elseif(empty($ddd)): $erro[] = "Digite um ddd"; elseif(empty($telefone)): $erro[] = "Digite um telefone"; elseif(empty($email)): $erro[] = "Digite um e-mail"; elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)): $erro[] = "E-mail inválido!"; elseif(empty($assunto)): $erro[] = "Digite um assunto"; elseif(empty($mensagem)): $erro[] = "Digite uma mensagem"; else: $mail = new PHPMailer(); //$mail->IsMail(); $mail->isSMTP(); $mail->Host = 'smtp.adagon.com.br'; $mail->SMTPAuth = true; $mail->Username = 'teste@adagon.com.br'; $mail->Password = '123456'; //essa não é a senha verdadeira, só ex. $mail->Port = 587; $mail->SMTPSecure = 'false'; $mail->IsHTML(true); $mail->CharSet = 'UTF-8'; $mail->From = 'teste@adagon.com.br'; $mail->FromName = 'ToldosMania'; $mail->AddAddress('teste@adagon.com.br'); $mail->Subject = 'E-mail enviado do Site'; $mail->Body = $_POST['mensagem']; /// só recebo o conteúdo desse campo if($mail->Send()): echo "E-mail enviado com sucesso!"; else: echo "Erro ao enviar o email ".$mail->ErrorInfo; endif; endif;?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 7, 2016 O conteúdo enviado por email é o da variável $mail->Body. Você só recebe a $mensagem, pois só colocou essa variável no Body Faça algo assim: $mail->Body = "<p>Nome: " . $nome . "</p>": $mail->Body .= "<p>Email: " . $email . "</p>": $mail->Body = "<p>Mensagem: " . $mensagem . "</p>": O ".=" é a concatenação. Esse operador adiciona dados a uma variável Compartilhar este post Link para o post Compartilhar em outros sites
Ada 6 Denunciar post Postado Abril 8, 2016 Caros, Rberaldo e Gabriel, Obrigada pelas orientações, agora está tudo funcionando. :D :D :D :D um abraço à vcs do iMasters Compartilhar este post Link para o post Compartilhar em outros sites