Pessoal, tive um pouco de dificuldade para enviar email utilizando o PHPMailer seguindo os passos da aula.
Percebi que existem algumas diferenças entre o conteúdo da aula e os exemplos básicos do PHPMailer 6.0.0 (versão mais atual no momento).
Eu adaptei o exemplo que tem no PHPMailer (https://github.com/PHPMailer/PHPMailer#a-simple-example) para atender o nosso propósito.
Estou rodando o projeto em PHP 7.1.8 em um Linux, então pode ser que existam algumas diferenças se vc estiver rodando em uma de PHP versão diferente como a 5.6.
Os arquivos do PHPMailer que estou utilizando são os seguintes: Exception.php OAuth.php PHPMailer.php POP3.php SMTP.php
Além disso, deixei todos esses arquivos em um diretório chamado vendors/phpMailer, por isso o require_once está dessa forma: 'vendors/phpMailer/
O arquivo envia-contato.php ficou assim:
<?php
session_start();
$nome = $_POST["nome"];
$email = $_POST["email"];
$mensagem = $_POST["mensagem"];
require_once 'vendors/phpMailer/PHPMailer.php';
require_once 'vendors/phpMailer/SMTP.php';
require_once 'vendors/phpMailer/Exception.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = 2;
$mail->isSMTP();
$mail->Host = 'IP do servidor';
$mail->SMTPAuth = true;
$mail->Username = 'seu usuário';
$mail->Password = 'sua senha';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
//Recipients
$mail->setFrom('emaildeenvio@email.com', 'Mailer');
$mail->addAddress('emaildeenvio@email.com', 'Joe User');
$mail->Subject = "Email de contato da loja";
$mail->msgHTML("<html>de: {$nome}<br/>email: {$email}<br/>mensagem: {$mensagem}</html>");
$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 mensagem " . $mail->ErrorInfo;
header("Location: contato.php");
}
} catch (Exception $e) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
}
die();
Depois dessas alterações, o formulário começou a enviar as mensagens.