3
respostas

Erro ao enviar e-amil (stream_socket_enable_crypto)

Boas pessoal,

Ao tentar enviar e-mail, estou a ter o erro, esta a devolver erro SMTP connect() failed. Verifiquei que apenas tenho um aviso: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in C:\xampp\htdocs\loja\class.smtp.php on line 273

Será este a causa??

Meu ficheiro envia-amail:

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

require_once("PHPMailerAutoload.php");

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

$mail->setFrom("martinsisata@gmail.com", "Alura Curso PHP e MySQL");
$mail->addAddress("martinsisata@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: contacto.php");
    echo $_SESSION["danger"];
}
die();

Podem ajudar?

3 respostas

Oi Martins =)

Verifica se sua conta do gmail está habilitada para aplicações menos seguras. Esse tipo de configuração costuma vir desabilitada por padrão nas contas gmail.

Aqui no forum você encontra um problema parecido com o seu =)

Abraço

Boas André, Mesmo habilitando, tive o mesmo erro :(. Tks

Tenta verificar se a porta 587 está habilitada na sua máquina.

O código está certinho, se não é problema na permissão da google provavelmente está nas permissoes da maquina mesmo =/