PHPMailer Composer Envio e Debug do Servidor 2021 Scriptcase

As vezes temos em uma nova hospedagem que usar sc_mail_send() mas não conseguimos
com ele acompanhar o passo a passo da transação no envio de e-mail para poder
apurar porque o envio de e-mail não esta dando certo de dentro da hospedagem, mas
no teste do https://www.gmass.co/smtp-test esta tudo certo, com isso podemos usar o composer
com o Scriptcase e usar a biblioteca phpmailer do github para isso facilmente, usando
este método também com o composer podemos usar diretamente outras bibliotecas conforme
a necessidade do seu projeto.

Para instalar o Composer baixe ele a versão para Windows:

E instale ele selecione o PHP do Scriptcase, para ele usar wwwwroot do seu Scriptcase.

Exemplo Baixar LIB pelo composer:
Entrar no CMD ‘Windows’ no diretório \wwwroot do Scriptcase como Administrador:

composer --version            [Enter]
composer require phpmailer/phpmailer            [Enter]

Note que na raiz do diretório de seu php wwwroot será criado uns arquivos, como composer.json e composer.lock,
bem como o diretório ‘/vendor’. Agora ficou fácil! Você já tem tudo que precisa para suas classes
GitHub funcionarem com o Scriptcase.

Crie um arquivo em wwwroot: enviar_email.php

<?php
// Importar classes PHPMailer para o namespace global 
// Eles devem estar no topo do seu script, não dentro de uma função 

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

// Carregar autoloader do Composer 
require 'vendor/autoload.php';

// Crie uma instância; passar `true` permite exceções 
$mail = new PHPMailer(true);

try {
    // Configurações do servidor 
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Ativar saída de depuração detalhada 
    $mail->isSMTP();                                            //Enviar usando SMTP 
    $mail->Host       = $_smtp_Servidor;                     //Defina o servidor SMTP para enviar 
    $mail->SMTPAuth   = true;                                   //Habilitar autenticação SMTP 
    $mail->Username   = $_smtp_Usuario;               //Nome de usuário SMTP
    $mail->Password   = $_smtp_Senha;                           //Senha SMTP 
    $mail->Port       = $_smtp_Porta;
	$mail->SMTPSecure = $_smtp_Seguranca;  // none (Nenhuma) / ssl / tls / auto (testa automaticamente a segurança).

    // Remetente Dados
    $mail->setFrom($_smtp_Usuario); // , 'Seu Nome' Nome Opcional
	
    $mail->addAddress($_smtp_Destinario); // Destinatários pode ir adicionando varias linhas com $mail->addAddress(...
												 // uma linha seguida de outra abaixo.

	$mail->addReplyTo($_smtp_Usuario);
	
    // $mail->addCC('cc@destinario.com.br'); // Copias da Mensagem

    // Anexos
    // $mail->addAttachment('/var/tmp/file.tar.gz');         // Adicionar Anexos
    // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Nome Opcional

    // Conteúdo
	$mail->CharSet = 'UTF-8';
    $mail->isHTML(true);                                  // Selecionar o e-mail como Html	
	
    $mail->Subject = $_assunto; // Assunto do e-mail
    $mail->Body    = $_html;

    $mail->send();
	
    $_smpt_Retorno = 'Mensagem Enviada com Sucesso!!';
	
} catch (Exception $e) {
	
    $_smpt_Retorno = "Erro no Envio do e-mail: {$mail->ErrorInfo}";
	
}

?>

Agora na aplicação do Scriptcase no Evento que for por a chamada para o e-mail coloque isso:

$_smtp_Servidor = 'smpt_servidor.com.br;                     //Defina o servidor SMTP para enviar 
$_smtp_Usuario = 'nome_usario@hospedagem.com';               //Nome de usuário SMTP
$_smtp_Senha = '*******';                           //Senha SMTP 
$_smtp_Porta = 587;
$_smtp_Seguranca = 'auto';  // none (Nenhuma) / ssl / tls / auto (testa automaticamente a segurança).
	
$_smtp_Destinario = 'cliente@empresa.com.br';

$_assunto = 'Este é um Teste '.date("Y-m-d H:i:s"); // Assunto do e-mail
$_html = "Este é o corpo da mensagem ".date("Y-m-d H:i:s")." HTML <b> em negrito! </b>";

require_once('../../../../enviar_email.php'); // Ajuste os ../ + ou - de acordo com suas sub-pastas.

echo $_smpt_Retorno;

Resultado do envio do e-mail, caso der erros ele vai Debugar passo a passo também:

Observação caso baixou e testou no Windows e sua hospedagem é Linux copiar a pasta /vendor em modo binário para a hospedagem pasta www e chmod 755 nela.