Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wellen1

Gente o que tem de errado nesta classe, que só retorna erro

Recommended Posts

<?php

include 'class.phpmailer.php';

$assunto = "Email_text";
$msg = " Mensagem a ser enviada";

//AUTENTICAÇÃO NO SERVIDOR E CONFIGURAÇÕES
$mail = new PHPMailer();
$mail->IsSMTP();

$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = "587";
$mail->SMTPAuth = true;
$mail->SMTPDebug = true;
$mail->Username = "xxxxxx@gmail.com";
$mail->Password = "xxxxxx";

$mail->From = "destino@gmail.com";
$mail->FromName = "TTT";
$mail->AddAddress("xxxxxx@gmail.com");
$mail->IsHTML(true);
$mail->CharSet = 'utf-8';
$mail->Subject = $assunto;


$mail->Body = $msg;
$enviado = $mail->Send();

if ($enviado)
    echo "enviado com sucesso <br />";
else
    "houve erros <br />";
?>

Observação: o arquivo class.phpmailer.php, class.smtp.php e index.php estão dentro de uma mesma pasta , vamos dizer assim, em um mesmo nível. E esse é o erro que da: Fatal error: Class 'SMTP' not found in C:\wamp\www\Mail\class.phpmailer.php on line 1195.

 

Já tentei inumeras vez, descomentei no phpini a linha (;extension=php_openssl.dll), mudei a porta para 456 e outras diversas coisas mais. A questão é que essa mesma classe já usei um tempo atras com a versão antiga do phpMail e funcionou só que agora nenhuma delas funciona mais.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Boa Tarde! Todos os seus arquivos estão na mesma pasta? Além dos arquivos class.phpmailer.php, e class.smtp.php estão os outros arquivos da biblioteca do PHPMAILER? Recomendo baixar a biblioteca e deixar em pasta separada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok... Tente talvez esse código:

       require("class.phpmailer.php");
		$mail = new PHPMailer(); 
		$mail->IsSMTP(); 
		$mail->Port = 465; 
		$mail->Host = 'smtp.gmail.com'; 
		$mail->IsHTML(true); 
		$mail->Mailer = 'smtp'; 
		$mail->SMTPSecure = 'ssl'; 
		$mail->SMTPAuth = true; 
		$mail->Username = "EMAIL DE LOGIN"; 
		$mail->Password = "SENHA DE LOGIN"; 
		$mail->SingleTo = true;
		$from = $this -> email;
		$fromname = $this -> nome;
		$mail->addAddress("ENVIAR PARA QUEM");
		$mail->Subject = "AQUI O ASSUNTO";
		$mail->Body = "MENSAGEM";
		$result = $mail->Send();
		if($result){
			echo 'Email enviado com Sucesso!';
		}
		else{
			echo 'Erro ao enviar email!';
		}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente o código que você me enviou só alterei email destino, remetente e senha e deu o seguinte erro: Fatal error: Using $this when not in object context in C:\wamp\www\Mail\email.php on line 16


Cara já baixei esta classe de diversos sites no minimo uma 200 vezes. Só não desisti ainda porque sou muito insistente.


Seria alguma configuração de meu servidor?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops. Vi um erro no código tente novamente:

      require("class.phpmailer.php");
		$mail = new PHPMailer(); 
		$mail->IsSMTP(); 
		$mail->Port = 465; 
		$mail->Host = 'smtp.gmail.com'; 
		$mail->IsHTML(true); 
		$mail->Mailer = 'smtp'; 
		$mail->SMTPSecure = 'ssl'; 
		$mail->SMTPAuth = true; 
		$mail->Username = "EMAIL DE LOGIN"; 
		$mail->Password = "SENHA DE LOGIN"; 
		$mail->SingleTo = true;
		$from = "EMAIL SEU";
		$fromname = "NOME SEU";
		$mail->addAddress("ENVIAR PARA QUEM");
		$mail->Subject = "AQUI O ASSUNTO";
		$mail->Body = "MENSAGEM";
		$result = $mail->Send();
		if($result){
			echo 'Email enviado com Sucesso!';
		}
		else{
			echo 'Erro ao enviar email!';
		}

Se não conseguir, você tem teamviewer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara já tentei as duas portas a 465 e 587


E ai galera que domina o php, alguém de vocês já passo por isso?

Alguém tem noção de que pode ser? Pelo que entendi esse erro esta sendo acometido na classe.phpmailer.php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estava com o mesmo erro, resolvi esse erro da seguinte forma.

 

1 - Baixei o PHPMailer no github

2 - Descompactei os arquivos na pasta /www do Wamp e separei só o necessário para o uso;

- index.php // Criado para chamar as classes da pasta /phpmailer

- class.phpmailer.php

- class.smtp.php

- PHPMailerAutoload

- language // pasta com os arquivos de idiomas deixei só o phpmailer.lang-pt

 

No index.php ficou o codigo;

<?php
/**
 * Created by PhpStorm.
 * User: jrnet
 * Date: 30/01/2016
 * Time: 20:11
 */

// Os arquivos do PHPMailer foram extraidos na pasta /mail

  require 'mail/class.phpmailer.php';
  require 'mail/class.smtp.php';

  $mail = new PHPMailer();
  $mail->setLanguage('pt');

//Variaveis de configuração do servidor do GMAIL

  $host     = 'smtp.gmail.com';
  $username = 'seu_email@gmail.com';
  $password = 'sua_senha';
  $port     = 587;
  $secure   = 'tls';

  $from     = $username;
  $fromName = 'JRWIKI';

  $mail->isSMTP();
  $mail->Host = $host;
  $mail->SMTPAuth   = true;
  $mail->Username   = $username;
  $mail->Password   = $password;
  $mail->Port       = $port;
  $mail->SMTPSecure = $secure;

  $mail->From       = $from;
  $mail->FromName   = $fromName;
  $mail->addReplyTo($from, $fromName);

  $mail->addAddress('seu_email@gmail.com', 'Nome de quem enviou');

  $mail->isHTML(true);
  $mail->CharSet     = 'utf-8';
  $mail->WordWrap    = 70;

// Exemplos de texto para o e-mail com HTML e sem.

  $mail->Subject     = 'Enviando E-mails com PHPMailer';
  $mail->Body        = 'Enviando emails com <b>PHPMailer</b> na <h2>Video Aula</h2>';
  $mail->AltBody      = 'Enviando emails com PHPMailer na Video Aula';

// Faz a validação se a mensagem foi enviada para o servidor. 
  $send = $mail->Send();

  if($send)
      echo 'E-mail enviado com sucesso!';
  else
      echo 'Error : ' .$mail->ErrorInfo;


?>

Praticamente só precisei fazer isso, quando fui para o navegador e acessei a pasta já retornou a mensagem "E-mail enviado com sucesso!"

 

Espero que tenha ajudado.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal tudo bem?

Acredito que para resolver isso vocês devem alterar de:

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

para

require_once("./phpmailer/PHPMailerAutoload.php");

Dessa forma ele vai auto carregar as Class PHP assim que cada uma for solicitada.

Espero ter ajudado Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.