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

Enviar e-mail via SMTP - Exercício aula 10

Olá,

não consegui enviar e nem receber e-mail usando o PHPMailer. Se alguém tiver uma sugestão, agradeço.

Segue abaixo o código.

<?php
session_start();
require_once("PHPMailerAutoload.php");

$nome = $_POST["nome"];
$email = $_POST["email"];
$mensagem = $_POST["mensagem"];

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

$mail->setFrom("elaynegomes@gmail.com", "Alura Curso PHP e MySQL");
$mail->addAddress("elaynegomes@gmail.com");
$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");
}
die();
?>
5 respostas

Elayne, boa noite. Tudo bem?

Apareçe alguma mensagem de erro, ou algo similar que possam nos dar mais informações para tentar te ajudar? Aparentemente seu código está certo.

Olá Felipe, boa noite!

A mensagem de erro que aparece é:

Erro ao enviar mensagem SMTP connect() failed.

solução!

Elayne, Boa noite. Se não me engano você tem que habilitar o acesso ao POP e SMTP.

  1. Em configurações no seu gmail, você acessa a aba encaminhamento POP/IMAP e ativa o IMAP.

Procure mais no google sobre configuração de smtp no gmail.

  1. Tente enviar também pela porta 465.

  2. require_once("PHPMailerAutoload.php"); Esse arquivo está dentro da pasta raiz? ou está dentro de outra pasta?

Boa noite Felipe,

Segui as suas recomendações, mas o erro persiste.

1 - O IMAP da minha conta do Gmail está ativo; 2 - Troquei a porta para 465; 3 - O require_once("PHPMailerAutoLoad.php") está na pasta raiz da minha aplicação;

A partir de Dezembro de 2014 o Gmail passou a utilizar um mecanismo de autenticação chamado XOAUTH2 baseado no protocolo OAuth2. (Fonte)

A maneira mais fácil de permitir que o PHPMailer utilize o SMTP do Gmail é dando permissão de acesso para "aplicativos menos seguros". Basta seguir esse tutorial.

A partir da versão 5.2.11, o PHPMailer passou a aceitar autenticação XOAUTH2, porém necessita da versão 5.4 ou superior do PHP. Caso prefira, é só seguir esse tutorial (em inglês).