Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Envio de email SMTP com erro

O clicar em enviar aparece a seguinte mensagem de erro:

Fatal error: Uncaught Error: Class 'PHPMailer' not found in C:\xampp\htdocs\loja\envia-contato.php:9 Stack trace: #0 {main} thrown in C:\xampp\htdocs\loja\envia-contato.php on line 9

6 respostas

Olá Bruno, se puder coloque seu código aqui para podermos ajudar.

O erro estaria relacionado ao comando: $mail = new PHPMailer(); no código abaixo. Salvo engano uso PHP7

<?php session_start(); $nome = $_POST["nome"]; $email = $_POST["email"]; $mensagem = $_POST["mensagem"];

require_once("PHPMailerAutoload.php");

$mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = "smtp.gmail.com"; $mail->Port = 587; $mail->SMTPSecure = "tls"; $mail->SMTPAuth = true; $mail->Username = "brunodesousasimoes@gmail.com"; $mail->Password = "";

$mail->setFrom("brunodesousasimoes@gmail.com", "Bruno Simoes"); $mail->addAddress("brunodesousasimoes@gmail.com"); $mail->Subject = "Email de contato da loja"; $mail->msgHTML("de: {$nome}email: {$email}mensagem: {$mensagem}"); $mail->AltBody = "de: {$nome}\nemail: {$email}\nmensagem: {$mensagem}";

if($mail->send()){ $_SESSION["success"] = "Mensagem enviada com sucesso."; header("Location: index.php"); } else{ $_SESSION["danger"] = "Erro ao enviar a mensagem " . $mail->ErrorInfo; header("Location: contato.php"); } die();

Olá Bruno, você precisa informar o caminho completo até o arquivo da classe em questão.

Por exemplo:

require_once("pasta/caminho/ate/arquivo/PHPMailerAutoload.php");

OU:

require_once("../pasta/abaixo/PHPMailerAutoload.php");

A não ser que o arquivo "PHPMailerAutoload.php" esteja no mesmo local de onde você está utilizando o arquivo com sua linha de código.

Pois é, eles estão na mesma pasta. Não entendo a razão do erro. Também não subi a aplicação continuo usando o localhost.

Pode ser que o Autoload não esteja dando um require na classe "PHPMailer", verifica isso. Caso seja necessário, faz uma instalação do PHPMailer novamente.

OBS: Creio que você copiou e colou seu código e passou junto sua senha amigo, cuidado, nem todo mundo é justo.

solução!

Thomás,

Fui ler a documentação no GitHub e vi que precisava adicionar também o arquivo class.phpmailer.php Não lembro de ter visto ele adicionar esse arquivo no vídeo. Feito isso funcionou.

Ah, obrigado pelo lembrete da senha. Já fiz a alteração dela. Muito noob da minha parte.