Error using phpMailer class

5

I am making a contact form using the phpMailer class and every time I send the email this error occurs:

I'm using the SMTP connection.

"Fatal error: Class 'SMTP' not found in /home/proftpd/[email protected]/PHPMailer/class.phpmailer.php on line 1466".

Below is the code I'm using:

<?php

// Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer
require("./PHPMailer/class.phpmailer.php");


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

// Define os dados do servidor e tipo de conexão
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->IsSMTP(); // Define que a mensagem será SMTP
//$mail->Host = "localhost"; // Endereço do servidor SMTP (caso queira utilizar a 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->Username = '[email protected]'; // Usuário do servidor SMTP (endereço de email)
$mail->Password = 'siteteste'; // Senha do servidor SMTP (senha do email usado)

// Define o remetente
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->From = "[email protected]"; // Seu e-mail
$mail->Sender = "[email protected]"; // Seu e-mail
$mail->FromName = "Ariel"; // Seu nome

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


// Define os dados técnicos da Mensagem
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->IsHTML(true); // Define que o e-mail será enviado como HTML
//$mail->CharSet = 'iso-8859-1'; // Charset da mensagem (opcional)

// Define a mensagem (Texto e Assunto)
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->Subject  = "Mensagem Teste"; // Assunto da mensagem
$mail->Body = 'Este é o corpo da mensagem de teste, em HTML! 
 <IMG src="http://seudomínio.com.br/imagem.jpg"alt=":)"   class="wp-smiley"> ';
$mail->AltBody = 'Este é o corpo da mensagem de teste, em Texto Plano! \r\n 
<IMG src="http://seudomínio.com.br/imagem.jpg"alt=":)"  class="wp-smiley"> ';

// Define os anexos (opcional)
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//$mail->AddAttachment("/home/login/documento.pdf", "novo_nome.pdf");  // Insere um anexo

// Envia o e-mail
$enviado = $mail->Send();

// Limpa os destinatários e os anexos
$mail->ClearAllRecipients();
$mail->ClearAttachments();

// Exibe uma mensagem de resultado
if ($enviado) {
echo "E-mail enviado com sucesso!";
} else {
echo "Não foi possível enviar o e-mail.

";
echo "Informações do erro: 
" . $mail->ErrorInfo;
}

?>
    
asked by anonymous 11.06.2016 / 16:04

2 answers

6

In the PHPMailer package, there are several classes, including: class.smtp.php used in file class.phpmailer.php .

Since you are including the class.phpmailer.php file in your script, you also need to include your dependencies:

require("./PHPMailer/class.smtp.php");
require("./PHPMailer/class.phpmailer.php");

In practice, the recommendation of PHPMailer is to include the autoLoader that auto-loads the required classes, where you would do the following:

require ("./PHPMailer/PHPMailerAutoload.php");

Including autoLoader , whenever any class is required and is not loaded, autoLoader loads the same for you, avoiding your problem.

    
11.06.2016 / 21:10
4

Try this

require_once (dirname(__FILE__) . '/PHPMailer/PHPMailerAutoload.php');
    
11.06.2016 / 20:24