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

Erro ao enviar o formulário via e-mail

Galera, verifiquei os outros tópicos com os mesmos problemas, só que as soluções apresentadas não adiantaram de nada no meu.

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

Alguém consegue encontrar o erro?

Meu código:

<?php
session_start();
$nome = $_POST["nome"];
$email = $_POST["email"];
$mensagem = $_POST["mensagem"];

require_once("class/PHPMailerAutoload.php");

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

$mail->setFrom("alanunesouza@gmail.com", "Alura Curso PHP e MySQL");
$mail->addAddress("alanunesouza@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();

?>
4 respostas

Já mudei as configurações de segurança no meu Gmail, e já configurei pra minha conta Hotmail e o erro persiste...

Você está utilizando o código em algum servidor? ou localhost?

Se for em algum servidor de hospedagem, tem que ver se ele não está bloqueando, no link que você passou ele fala que alguns servidores de hospedagem bloqueiam envios SMTP.

Se você está fazendo via localhost, tem que ver se o programa que você usa não tá bloqueando também.

Achei esse link aqui, vê se atende...

StackOverflow

Descobri que o problema é a versão do PHP, na versão 7.1.1 da esso erro de conexão, já na versão 5. (ñ me lembro exatamente qual versão), funcionou normalmente! Alguém sabe como adaptar o código para a versão 7.1.1?

solução!

Finalmente encontrei a solução, nesse link:

https://stackoverflow.com/questions/3477766/phpmailer-smtp-error-could-not-connect-to-smtp-host

Bastou adicionar isso:

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