2
respostas

Erro no PHPMailer

Olá, quando envio o e-mail, aparece a seguinte mensagem. O que está acontecendo? Já baixei o arquivo PHPMailer.php e coloquei na mesma pasta do envia-contato.php

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

Meu código:
<?php
session_start();
$nome=$_POST["nome"];
$email=$_POST["email"];
$mensagem=$_POST["mensagem"];

require_once ("PHPMailer.php");
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host='smtp.gmail.com';
$mail->Port=587;
$mail->SMTPSecure='tls';
$mail->SMTPAuth=true;
$mail->Username="fernandoishino@gmail.com";
$mail->Password="xxxxxx";
$mail->setFrom("alura.php.e.mysql@gmail.com","Alura Curso PHP e MySQL");
$mail->addAddress("fernandoishino@gmail.com");
$mail->Subject="Email de contato da loja";
$mail->msgHTML("<html>de: {$nome}<br>email: {$email}<br>mensagem: {$mensagem}</html>");

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

Oi Fernando, tudo bom?

O local no qual você vai deixar seu arquivo depende muito de onde seu servidor foi inicializado.

No caso do xampp, todo servidor é inicializado na pasta C:\xampp\htdocs. Isso significa que ao dar include ou require em um arquivo, ele procurará na pasta htdocs. Tenta algo como:

require_once ("loja\PHPMailer.php");

Assim, ele procurará na pasta C:\xampp\htdocs\loja

Olá André, agora apareceu o seguinte erro:

Warning: require_once(loja\PHPMailer.php): failed to open stream: No such file or directory in C:\xampp\htdocs\loja\envia-contato.php on line 8

Fatal error: require_once(): Failed opening required 'loja\PHPMailer.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\loja\envia-contato.php on line 8