[Tutorial] Atualizando o PHPMailer da include NMailer
#1

Saudaзхes!
Eu uso a include NMailer, do Locky_, faz tempo e funciona perfeitamente!

Ela usa os scripts do PHPMailer para enviar os e-mails, porйm й uma versгo antiga e vulnerбvel.
Eu atualizei com a versгo mais recente e vou disponibilizar abaixo as alteraзхes mнnimas necessбrias para a
include funcionar com as novas versхes do PHPMailer. Muito simples.
OBS: Nгo sou um expert em PHP, mas mesmo entendendo do bбsico, meu tutorial funciona!

--------------------------------------------------------------------------------------
NOTA: As novas atualizaзхes usam PHP 5.5 pra cima, ao contrбrio da atual que usa PHP 5.2 pra cima.
Certifique-se de que seu host usa PHP 5.5 pra cima!

Com acesso ao CPanel de sua hospedagem, procure por:


Clique e veja as opзхes de versхes do PHP disponнveis!
--------------------------------------------------------------------------------------

VANTAGENS DE ATUALIZAR
1 - Melhorias constantes nos scripts.
2 - Seguranзa no sistema de envio de e-mails.
3 - Reduзгo, dinamismo e organizaзгo dos arquivos.

TUTORIAL
1 - Nгo esqueзa de fazer um backup dos arquivos originais antes.
2 - Se vocк nгo possui, baixe a include NMailer: https://sampforum.blast.hk/showthread.php?tid=572769
3 - Baixe a ъltima versгo do PHPMailer: https://github.com/PHPMailer/PHPMailer/releases
4 - A presente versгo й 6.0.5, entгo pegue a pasta "PHPMailer-6.0.5" e cole dentro da pasta "nmail", a qual vem junto com os arquivos da include.
5 - Dentro da pasta "nmail", abra o arquivo "index.php".
6 - Substitua todo o conteъdo do arquivo por este:
PHP код:
<?php
    
use PHPMailer\PHPMailer\PHPMailer;
    use 
PHPMailer\PHPMailer\SMTP;
    include (
"PHPMailer-6.0.5/src/PHPMailer.php");
    include (
"PHPMailer-6.0.5/src/SMTP.php");
    
$mail = new PHPMailer();
    if(!isset(
$_GET['autenticado']))
    {
        if(!isset(
$_POST['de']) || !isset($_POST['para']) ||
        !isset(
$_POST['tit']) || !isset($_POST['msg'])) die ("Erro - E-mail nгo autenticado ou mal formado!");
        
$charset $_POST['charset'];
        
$de $_POST['de'];
        
$nome $_POST['nome'];
        
$para $_POST['para'];
        if(
$charset == "utf-8")
        {
            
$titulo utf8_encode($_POST['tit']);
            
$msg utf8_encode($_POST['msg']);
        }
        else
        {
            
$titulo $_POST['tit'];
            
$msg $_POST['msg'];
        }
        
$type $_POST['type'];
        
$headers "MIME-Version: 1.1\r\n";
        
$headers .= "Content-type: $type; charset=$charset\r\n";
        
$headers .= "From: $nome<{$_POST'de' ]}>\r\n"// remetente
        
$headers .= "Return-Path: $de\r\n"// return-path
        
$envio mail($para$titulo$msg$headers);
        if(!
$envio) echo 'E-mail nгo enviado...';
        else echo 
'E-mail enviado com sucesso!';
    }
    else
    {
        if(!isset(
$_POST['nome']) || !isset($_POST['de']) || !isset($_POST['senha']) || !isset($_POST['host']) || !isset($_POST['porta']) ||
        !isset(
$_POST['para']) || !isset($_POST['tit']) || !isset($_POST['msg'])) die ("Erro - E-mail nгo autenticado ou mal formado!");
        
//$mail->SMTPDebug = 1;//Use isso para checar possiveis problemas
        
$mail->SMTPSecure 'tls';
        
$mail->IsSMTP();
        
$mail->SetLanguage("br");
        
$mail->CharSet $_POST['charset'];
        
$mail->Username $_POST['de'];
        
$mail->From $_POST['de'];
        
$mail->FromName $_POST['nome'];
        
$mail->Password $_POST['senha'];
        
$mail->Host $_POST['host'];
        
$mail->Port $_POST['porta'];
        
$mail->SMTPAuth true;
        
$mail->AuthType $_POST['auth'];
        if(
$_POST['charset'] == "utf-8")
        {
            
$mail->Subject utf8_encode($_POST['tit']);
            
$mail->Body utf8_encode($_POST['msg']);
            
$mail->AltBody utf8_encode($_POST['msg']);
        }
        else
        {
            
$mail->Subject $_POST['tit'];
            
$mail->Body $_POST['msg'];
            
$mail->AltBody $_POST['msg'];
        }
        
$mail->IsHTML((($_POST['type'] == "text/html") ? (true) : (false)));
        
$mail->AddAddress($_POST['para']);
        
$envio $mail->Send();
        if(!
$envio) echo 'E-mail nгo enviado...';
        else echo 
'E-mail enviado com sucesso!';
    }
?>
7 - Observe os seguintes cуdigos importantes, com as regras das novas versхes:
PHP код:
    use PHPMailer\PHPMailer\PHPMailer;//Й preciso definirmos isso pra usarmos a classe PHPMailer().
    
use PHPMailer\PHPMailer\SMTP;//Tambйm isso pra usarmos as funзхes de envio de e-mail via SMTP.
    //Definindo/incluindo os arquivos necessбrios baseado na pasta com a versгo atual do PHPMailer.
    
include ("PHPMailer-6.0.5/src/PHPMailer.php");//Arquivo com as funзхes bбsicas do PHPMailer.
    
include ("PHPMailer-6.0.5/src/SMTP.php");//Arquivo com as funзхes bбsicas do sistema de envio via SMTP.
    
$mail = new PHPMailer();//Declaramos a classe PHPMailer() para usarmos no envio dos e-mails. 
NOTA: Esses cуdigos devem estar sempre no topo do script, nunca dentro de uma funзгo, ou nгo vai funcionar!

8 - Salve o arquivo "index.php" e envie a pasta "nmail" para o host.
9 - Pronto, vocк estб com a versгo mais atual do PHPMailer.
10 - Caso queira estudar mais sobre esse incrнvel projeto: https://github.com/PHPMailer/PHPMailer

CRЙDITOS
Tutorial - JR_Junior
Include NMailer - Locky_
PHPMailer - Synchro
Reply


Messages In This Thread
Atualizando o PHPMailer da include NMailer - by JR_Junior - 22.05.2018, 21:02
Re: Atualizando o PHPMailer da include NMailer - by Marllun - 27.05.2018, 03:57
Re: Atualizando o PHPMailer da include NMailer - by Danielu - 27.05.2018, 10:36
Re: Atualizando o PHPMailer da include NMailer - by JR_Junior - 28.05.2018, 14:52
Re: Atualizando o PHPMailer da include NMailer - by Locky_ - 28.05.2018, 20:09
Re: Atualizando o PHPMailer da include NMailer - by JR_Junior - 29.05.2018, 17:55
Re: Atualizando o PHPMailer da include NMailer - by PT - 29.05.2018, 17:56
Re: Atualizando o PHPMailer da include NMailer - by JR_Junior - 29.05.2018, 18:09

Forum Jump:


Users browsing this thread: 1 Guest(s)