Do not send email with PHP Mailer

Asked

Viewed 406 times

-1

I have the following code:

<?php

// Inclui o arquivo class.phpmailer.php localizado na pasta class
require_once("a/class.phpmailer.php");
require_once("a/class.smtp.php");

// Inicia a classe PHPMailer
$mail = new PHPMailer(true);

// Define os dados do servidor e tipo de conexão
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->IsSMTP(); // Define que a mensagem será SMTP

try {
     $mail->Host = 'smtp.gmail.com'; // Endereço do servidor SMTP (Autenticação, utilize o host smtp.seudomínio.com.br)
     $mail->SMTPAuth   = true;  // Usar autenticação SMTP (obrigatório para smtp.seudomínio.com.br)
     $mail->Port       = 587; //  Usar 587 porta SMTP
     $mail->Username = '[email protected]'; // Usuário do servidor SMTP (endereço de email)
     $mail->Password = 'SENHA'; // Senha do servidor SMTP (senha do email usado)

     //Define o remetente
     // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    
     $mail->SetFrom('[email protected]', 'Nome'); //Seu e-mail
     $mail->AddReplyTo('[email protected]', 'Nome'); //Seu e-mail
     $mail->Subject = 'Assunto';//Assunto do e-mail


     //Define os destinatário(s)
     //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
     $mail->AddAddress('[email protected]', 'Teste Locaweb');

     //Campos abaixo são opcionais 
     //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
     //$mail->AddCC('[email protected]', 'Destinatario'); // Copia
     //$mail->AddBCC('[email protected]', 'Destinatario2`'); // Cópia Oculta
     //$mail->AddAttachment('images/phpmailer.gif');      // Adicionar um anexo


     //Define o corpo do email
     $mail->MsgHTML('corpo do email'); 

     ////Caso queira colocar o conteudo de um arquivo utilize o método abaixo ao invés da mensagem no corpo do e-mail.
     //$mail->MsgHTML(file_get_contents('arquivo.html'));

     $mail->Send();
     echo "Mensagem enviada com sucesso</p>\n";

    //caso apresente algum erro é apresentado abaixo com essa exceção.
    }catch (phpmailerException $e) {
      echo $e->errorMessage(); //Mensagem de erro costumizada do PHPMailer
}
?>

However I am unable to send, this error appears:

SMTP Error: Could not authenticate.

Someone knows how I do?

  • You changed the file name ? class.phpmailer.php ?

  • No, but I’m gonna come down here one more time and try.

  • I think you are not properly authenticating the STMP when sending.

  • Your server is the problem. It’s blocking.

2 answers

0

So I think you also need to import the Phpmailerautoload.php file.

I always use this code here and it works, try it...

<?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 = "[email protected]";
$mail->Password = "123456";

$mail->setFrom("[email protected]", "Titulo");
$mail->addAddress("[email protected]");
$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();

-1

Because the door is 587, I think you should put

$mail->Smtpsecure = 'tls';

Browser other questions tagged

You are not signed in. Login or sign up in order to post.