PHPMailer return true or false [closed]

0

I would just like phpmailer to inform me if it was sent or not:

I tried this way:

function enviar_email($titulo, $email, $corpo){
    $enviado = false;

    require_once("../servicos/phpmailer/class.phpmailer.php");

    define('GUSER', '[email protected]'); // <-- Insira aqui o seu GMail
    define('GPWD', 'senhaDoEmail');     // <-- Insira aqui a senha do seu GMail


    $error = "";
    $mail = new PHPMailer();
    $mail->IsSMTP();        // Ativar SMTP
    $mail->SMTPDebug = 1;       // Debugar: 1 = erros e mensagens, 2 = mensagens apenas
    $mail->SMTPAuth = true;     // Autenticação ativada
    $mail->SMTPSecure = 'tls';  // SSL REQUERIDO pelo GMail
    $mail->Host = 'smtp.gmail.com'; // SMTP utilizado
    $mail->Port = 587;          // A porta 587 deverá estar aberta em seu servidor
    $mail->Username = GUSER;
    $mail->Password = GPWD;
    $mail->SetFrom('[email protected]', 'Nome');
    $mail->Subject = $titulo;
    $mail->IsHTML(true);
    $mail->Body = $corpo;
    $mail->AddAddress($email);
    if(!$mail->Send()) {
        $error = 'Mail error: '.$mail->ErrorInfo;
       // return false;
    } else {
        $error = 'Mensagem enviada!';
        $enviado = true;
        //return true;
    }
    return $enviado;

}

I call it that

 $testeEmail =  enviar_email($titulo, $email, $corpo);
 if($testeEmail)
   echo "Enviou";
 else
   echo "Nao enviou"; 

The email is sent, but it does not return anything.

Tips? I'm waiting.

    
asked by anonymous 13.06.2017 / 21:26

1 answer

1

One solution would be to enable the exceptions of the class and place the function inside a try catch. The body of the function would look something like this:

try {
    require_once("../servicos/phpmailer/class.phpmailer.php");

    define('GUSER', '[email protected]'); // <-- Insira aqui o seu GMail
    define('GPWD', 'senhaDoEmail');     // <-- Insira aqui a senha do seu GMail


    $error = "";
    $mail = new PHPMailer(true); // <-- passa true nos parâmetros para habilitar as exceptions
    $mail->IsSMTP();        // Ativar SMTP
    $mail->SMTPDebug = 1;       // Debugar: 1 = erros e mensagens, 2 = mensagens apenas
    $mail->SMTPAuth = true;     // Autenticação ativada
    $mail->SMTPSecure = 'tls';  // SSL REQUERIDO pelo GMail
    $mail->Host = 'smtp.gmail.com'; // SMTP utilizado
    $mail->Port = 587;          // A porta 587 deverá estar aberta em seu servidor
    $mail->Username = GUSER;
    $mail->Password = GPWD;
    $mail->SetFrom('[email protected]', 'Nome');
    $mail->Subject = $titulo;
    $mail->IsHTML(true);
    $mail->Body = $corpo;
    $mail->AddAddress($email);
    $mail->Send();
    $error = 'Mensagem enviada!';
    return true;
} catch (Exception $e) {
    $error = 'Mail error: '.$mail->ErrorInfo;
    return false;
}

Reference: link

    
20.07.2018 / 00:24