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.