Ir para conteúdo

POWERED BY:

Arquivado

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

Glaucia Aguiar

fatal error php mailer

Recommended Posts

Boa noite, estou com problemas no php mailer. está dando esse erro:

Fatal error: Class 'SMTP' not found in C:\xampp\htdocs\mailer\phpmailer\class.phpmailer.php on line 1203;

o código é esse:

 

 

 

 

<?php 


require ('phpmailer/class.phpmailer.php');

$mail  = new PHPmailer();
$mail ->setlanguage('pt');


$from = 'email@gmail.com'; //meu email
$fromName = 'Mailer';


$host              ='smtp.gmail.com';
$username          ='email@gmail.com'; //meu email
$password          ='xxxxxx';
$port               ='587';
$secure    ='tls';


$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->addAddress('emaildestino@gmail.com' ,'nome' );

$mail->isHtml(true);
$mail->charset     = 'utf-8';
$mail->wordwrap  = 70;

//assunto

$mail-> subject         = 'Enviando emails com php mailer';
$mail->Body             = 'enviando<b> emails com php mailer </b>';
$mail->AltBody          ='enviando emails com php mailer ';



$send = $mail->send();

if($send)

        echo 'Email enviao com sucesso!';

else
        echo 'erro : '.$mail->ErrorInfo;




?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Habilite o debug para exibir os erros

 

//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages


$mail->SMTPDebug = 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro continua sendo na class.phpmailer.php na linha 1203, só não sei o que mudar

 

 

,[optional] /**

* Get an instance to use for SMTP operations.
* Override this function to load your own SMTP implementation
* @return SMTP
*/
public function getSMTPInstance()
{
if (!is_object($this->smtp)) {
$this->smtp = new SMTP; ESSA É A LINHA 1203.
}
return $this->smtp;
}[/optional]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não mostrar qual erro aparece fica difícil, mas verifique se o caminho destes includes estão corretos

 

Troque:

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

Por:

if (file_exists('phpmailer/class.smtp.php')) {
   require_once ('phpmailer/class.smtp.php');
} else {
   exit('Error: class.smtp não encontrada!');
}

if (file_exists('phpmailer/class.phpmailer.php')) {
    require_once ('phpmailer/class.phpmailer.php');
} else {
    exit('Error: class.phpmailer não encontrada!');
}

Só uma observação, outro dia fui trocar a versão do phpmailer de meus sistemas, para a versão mais nova, estava tendo problemas, e acabei desistindo da nova atualização, mas acho que já corrigiram, ainda uso versão abril de 04/2014

 

Esta versão que você esta usando é atual, e baixada direto do github?

 

https://github.com/PHPMailer/PHPMailer

 

Pois se for, a nova forma de chamar as classes é diferente!

 

Agora é!!

require '../PHPMailerAutoload.php';

https://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps

 

https://github.com/PHPMailer/PHPMailer/tree/master/examples

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso, o erro é de suas configurações de acesso.

 

Se estiver usando o Gmail como conexão, tem que habilitar o envio de STMP

 

de uma olhada no link abaixo:

 

https://support.google.com/mail/answer/78775?hl=pt-BR

 

 

Lembre-se, no entanto, que o SMTP do Gmail tem um limite severo de envios de forma a prevenir spammers de utilizar o servidor de saída para o envio massivo de e-mails de lixo. O limite é de 100 destinatários de uma vez e 500 mensagens por dia: se ultrapassar esta restrição, o Google irá bloquear a sua conta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigada pela ajuda williams, mas não consigo resolver,

 

agora outro problema :

 

 

Connection: opening to smtp.gmail.com:25, t=300, opt=array ()
Connection: opened

 

mandei com email do outlook e deu o mesmo problema:

 

Connection: opening to smtp.live.com:25, t=300, opt=array ()

Connection: opened

 

mudei para porta 25 no script e no sendmail do xampp... e nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outlook e Gmail é tls e 587

 

Outlook

$mail->Host = 'smtp-mail.outlook.com';
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port = 587;
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';

Gmail

//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';

//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port = 587;

//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';

Faça um teste em servidor remoto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente o problema é nas configurações de acesso.

 

Duarte, eu uso a nova versão, não tive nenhum problema, aqui ta rolando de boa.

 

Glaucia, suas configurações devem estar como sugerido pelo colega.

$mail->isSMTP(); // Define que a mensagem será SMTP
$mail->SMTPSecure = "tls";
$mail->Port = "587";
$mail->Host = "smtp.gmail.com"; // Endereço do servidor SMTP
$mail->SMTPAuth = true; // Usa autenticação SMTP? (opcional)
$mail->Username = ""; // Usuário do servidor SMTP
$mail->Password = ""; // Senha do servidor SMTP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Duarte, eu uso a nova versão, não tive nenhum problema, aqui ta rolando de boa.

Vou testar novamente, valeu! :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá  boa tarde !

 

estou tendo  um problema no meu código veja :

OBS. não sei o que  é  já removi o mb_encode_mimeheader($subject, "utf-8") mais se  eu removo funciona mais fica tudo  desproporcional o e-mail na  hora que eu envio fica tudo sem  caracteres tipo sem os acentos.

=========================================================

// Email que receberá a mensagem (Não se esqueça de substituir)
$email_to = 'contato@inforcompane.com';

// Enviando email
$status = mail($email_to, mb_encode_mimeheader($subject, "utf-8"), $corpo, $headers);

if ($status):
  // Enviada com sucesso
  header('location:index.php?status=sucesso');
else:
  // Se der erro
  header('location:index.php?status=erro');
endif;
?>

============================================================

OBS. do erro adicionado o mb_encode_mimeheader($subject, "utf-8")

 

Fatal error: Uncaught Error: Call to undefined function teste 6() in /home/inforco1/public_html/enviar-email.php:22 Stack trace: #0 {main} thrown in /home/inforco1/public_html/enviar-email.php on line 22

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.