Macro sc_send_mail_api

(Thyago Brasil) #1

Pessoal, boa tarde!

Gostaria de saber se alguém conhece uma forma de confirmar se o e-mail foi enviado ou não? Por ex.: se eu tentar enviar um e-mail com dados de smtp incorretos, ele vai me trazer uma mensagem do tipo:

Error
stream_socket_client(): unable to connect to mail.seudominio.com.br:0 (Connection timed out)

Queria tratar esse tipo de erro, ou seja, colocar em um alert ou coisas do tipo bem como, informar o usuário que o e-mail foi enviado.

Grato!!

(Alexandre Pereira Bühler) #2

Acho que vai ter que colocar um “try” https://www.php.net/manual/pt_BR/language.exceptions.php e fazer um tratamento pegando a resposta que vem do sc_error_message({sc_mail_erro}).

(Thyago Brasil) #3

Boa noite!! Testei isso mas dá mensagem que a variável {sc_mail_erro} não existe.

(Jair) #4

“mail.seudominio.com.br:0” este zero, parece que não definiu a porta de conexão, tenta colocar 587, ou verifique qual a porta que seu provedor de email disponibiliza

(Thyago Brasil) #5

@jair , o problema não é esse. Eu só quero tratar o erro. O motivo para o erro foi só um exemplo

(Thyago Brasil) #6

Bom dia, dando continuidade a este mesmo tópico, eu quero deixar aqui outro problema que me houve mas quando subi o sistema para produção.

O erro que me dá é o seguinte: stream_socket_client(): unable to connect to tcp://smtp.gmail.com:587 (Connection timed out)

Eu tenho uma revenda na Uolhost.

Alguma ideia do que possa ser?

(Thyago Brasil) #7

Pessoal, bom dia!
Estou reabrindo este tópico pelo simples motivo de que ainda não consegui fazer o tratamento quando o e-mail é enviado com sucesso e quando ocorre algum erro.

Particularmente, na documentação, eu acho que está muito, mas MUITO incompleto mesmo. Não tem muita explicação. Poderiam dar mais detalhes sobre essa macro?

Eu consegui implementa-la. Mas não dá pra apresentar erros de qualquer jeito para o cliente. Se alguém já conseguiu fazer tal tratamento, poderia me dar uma luz de como fazer?

Desde já, agradeço a atenção de todos!

(Jair) #8

Olá,

cheguei a pesquisar, até anotei aqui para estudar como funciona, mas ainda não tive tempo

bem segue o caminho e o que achei, pode dar uma luz, ou desiste da _api como eu fiz

dentro do _lib/lib/php/nm_api.php a function sc_send_mail_api($arr_settings)
porem não vi retorno de erro

pesquisando dentro de projetos feitos encontrei {sc_mail_erro} dentro da segurança
app_form_add_users_apl.php
le tem:
$this->sc_mail_count = 0;
$this->sc_mail_erro = “”;
$this->sc_mail_ok = true;

e no codigo fazem verificações e vão setando o erro ou ok

$Err_mail = array();
$this->sc_mail_count = $Send_Mail->send($Mens_Mail->setFrom($Arr_addr[0], $Arr_addr[1]), $Err_mail);
if (!empty($Err_mail))
{
$this->sc_mail_erro = $Err_mail;
$this->sc_mail_ok = false;
}

pensei no samples que deveria ter alguma coisa, pesquisando por sc_mail_erro, só encontrei uma ocorrencia mcr15 mas ela faz uso do sc_mail_send e não a api

unica ocorrencia para sc_send_mail_api esta em control_email_export, mas não ajudou nada

resultado…
estou usando o phpmailer até descobrir como tratar melhor ou ver como mudar a api, o envios em lote vão por cronjob com phpmailer não uso SC, os envios individuais dentro da aplicação usei o a sc_mail_send

(Thyago Brasil) #9

Grande Jair, obrigado!!!