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

envio de email via smtp - falha de conexao

Acontece o seguinte erro:

Erro ao enviar mensagem SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Meu código é o seguinte:

<?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="meu email pessoal";
$mail->Password="senha do meu email pessoal";

$mail->setFrom("meu email pessoal","usuario do meu email pessoal");
$mail->addAddress("meu email pessoal");
$mail->Subject="teste";
$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();



?>
2 respostas
solução!

Olá, Guilherme.

Se tiver usando o gmail, você deve estar com algum problema na autenticação. Tá uma olhada nesse link que ele vai te dizer o que você tem que fazer dependendo do email que você estiver utilizando: https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Se não resolver, só falar que tentamos outra coisa.

Oi Guilherme!

Cara eu tive o mesmo problema. Apanhei para achar uma solução e consegui. Espero que eu possa ajuda-lo.

Tive que alterar uma configuração na minha conta do gmail: https://www.youtube.com/watch?v=P-q2QfFA3vQ

Fiz a inclusão do código abaixo que não consta no treinamento:

$mail->SMTPOptions = array(
'ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true
));

Segue o código completo:

<?php

require_once("../phpMailer/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 = "tyrionlannistertywin@gmail.com";
$mail->Password = "xura";
//$mail->SMTPDebug = 3;

$mail->setFrom("tyrionlannistertywin@gmail.com", "Alura Curso PHP e MySQL");
$mail->addAddress("tyrionlannistertywin@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}";
$mail->SMTPOptions = array(
'ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true
));

if($mail->send()) {
    echo "Mensagem enviada com sucesso";    
} else {
    echo "Erro ao enviar mensagem " . $mail->ErrorInfo;    
}

Lista de arquivos: class.phpmailer.php class.pop3.php class.smtp.php PHPMailerAutoload.php