Ir para conteúdo

POWERED BY:

Arquivado

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

Ada

PHPMailer

Recommended Posts

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

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

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

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

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

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

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

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

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

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

×

Informação importante

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