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

SMTP connect() failed.

Olá.

Então, é o seguinte, antes de montar este tópico eu verifiquei as dúvidas anteriores porém nenhuma delas ainda conseguiu resolver este meu problema.

Ao enviar os dados do formulário para o email, é exibido a seguinte informação:

Mensagem não enviadaSMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Vale ressaltar:

1 - Eu já ativei a permissão para aplicações não seguras do google;

2- Eu já alternei $mail->Port = 587; e $mail->SMTPSecure = 'ssl'; para os diversos valores possíveis e mesmo assim não rolou;

3- Já desativei antivirus;

Segue código:

[FORMULÁRIO]

<?php require_once('cabecalho.php'); ?>

<h2>Contato</h2> 

<form action="envia-contato.php" method="post">

    <div class="form-group">
        <label for="nome">Nome</label>
        <input type="text" class="form-control" id="nome" placeholder="Nome" name="nome">
    </div>

    <div class="form-group">
        <label for="email">Email</label>
        <input type="email" class="form-control" id="email" placeholder="Email" name="email">
    </div>

    <div class="form-group">
        <label for="mensagem">Descrição</label>
        <textarea name="mensagem" class="form-control" rows="7"></textarea>
    </div>

    <button type="submit" class="btn btn-primary">Enviar</button>
</form>

<?php require_once('rodape.php'); ?>

[CÓDIGO DO envia-produto.php]

<?php
session_start();

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

require_once('PHPMailer/PHPMailerAutoload.php');

$mail = new PHPMailer;

$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'ssl';
$mail->SMPTAuth = true;
$mail->Username = "matheusnascgomes@gmail.com";
$mail->Password = "**************";

$mail->setFrom("matheusnascgomes@gmail.com","Matheus Gomes");#Código duvidoso
$mail->addAddress("matheusnascgomes@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}\n email:{$email}\n mensagem: {$mensagem}";    

if($mail->send()){
    $_SESSION['success'] = "Mensagem enviada com sucesso";
    header('location: index.php');
}else{
    $_SESSION['danger'] = "Mensagem não enviada". $mail->ErrorInfo;
    header('location: contato.php');
}
die();
?>

Help!!!

7 respostas

Tenta adicionar/alterar essas config

$mail->Port = 465;
$mail->SMTPDebug = 0;
$mail->isHTML(true);
$mail->SMTPSecure = "ssl";

Oi Felipe.

Com essas configurações o erro mudou para:

Mensagem não enviadaThe following From address failed: matheusnascgomes@gmail.com : MAIL FROM command failed,Authentication Required. Learn more at https://support.google.com/mail/?p=WantAuthError 36sm190580qtz.16 - gsmtp ,530,5.5.1SMTP server error: MAIL FROM command failed Detail: Authentication Required. Learn more at https://support.google.com/mail/?p=WantAuthError 36sm190580qtz.16 - gsmtp SMTP code: 530 Additional SMTP info: 5.5.1SMTP server error: MAIL FROM command failed Detail: Authentication Required. Learn more at https://support.google.com/mail/?p=WantAuthError 36sm190580qtz.16 - gsmtp SMTP code: 530 Additional SMTP info: 5.5.1

Ok, teste alterando as configurações.

$mail->SMTP_PORT = 587; 
$mail->SMTPSecure = "tls";
$mail->SMTPAuth = true

Tente com

$mail->Port = 587;
ou
$mail->SMTP_PORT = "587";

Continua sem funcionar

solução!

Bom, felizmente consegui encontrar o erro. Não passava de uma bobagem... O que acontece é que eu digitei $mail->SMPTAuth = true; ao invés de $mail->SMTPAuth = true;

Eu te passei isso nos comentários acima.

Que bom que resolveu.

:)