Macro sc_mail_send - um desabafo

Prezados,
Tomei um baile de algumas horas na utilização desse macro, que no meu entender acredito que seja um bug do SC.
Eu já usava esse macro para envio de email no hostgator e durante o processo de instalação do mesmo aplicativo no ValueHost reparei que o e-mail não saía do domínio e tive a infeliz idéia de colocar alguns echo para poder visualizar até onde o programa estava sendo executado.

Olhando o log de execução vi a famigerada mensagem de erro :
“Call to undefined function sc_mail_send() in …blá blá bla…
… enviaEmail_apl->Valida_campos(NULL, NULL, NULL)”

Pois bem, depois de algumas horas de briga, resolvi fazer um pequeno programa controle para facilitar e após vários testes descobri que se escrever :

echo “antes do sc_mail_send”;
sc_mail_send({loc_smtp}, {loc_origem}, {loc_senha}, {loc_origem}, {loc_destino}, ‘teste envio de e-mail’, ‘mensagem’, ‘H’, ‘’, ‘’, {loc_porta}, $tipoConn );

apresenta esse erro acima descrito.
Bastou eu comentar a linha : echo “antes do sc_mail_send”;
e o macro passou a funcionar sem problemas.

Desculpem o texto longo, foi apenas um desabafo.

Hiro ck

1 Curtida

Não deve-se usar echo antes da macro sc_mail_send(…,
quando quiser testar se um e-mail esta configurado corretamente use este link:
SMTP Test Tool (gmass.co)

E depois este modelo no Scriptcase para configurar com autenticação SSL:

$_assunto = 'Teste';
$_mensagem_html = 'Teste';

$_smtp = 'seu_smtp';
$_usuario = 'seu_usuario_email@com.br';
$_senha = 'xxxxxx';
$_remetente = $_usuario;
$_destinatario = 'e_mail_destinario@com.br';

sc_mail_send($_smtp,
			 $_usuario,
			 $_senha,
			 $_remetente,
			 $_destinatario,
 			 $_assunto, $_mensagem_html, 'H', '', 'S', '587');
			


if ({sc_mail_ok}) {
    echo 'OK ENVIADO!';	
} else {
    echo 'ERRO!';		
}
2 Curtidas

Oi Jailton, boa tarde.

Muito obrigado pelos comentários.
Bem, eu já havia lido um post antigo seu e feito o teste da configuração com o [SMTP Test Tool (gmass.co)] e estava tudo OK.
Como eu escrevi antes, o app já estava funcionando em outro host; ao configurar no novo host é que tive problemas e tive a infeliz idéia de inserir alguns echo’s…

Sinceramente, não entendi o motivo de não poder usar o echo antes da macro sc_mail_send, poderia por favor me esclarecer ?

grato,
Hiro ck

1 Curtida

Isso é para nível de teste, o echo se o e-mail estiver tudo correto vai retornar 1, e se tiver
erro em algum parâmetro o próprio php já vai retornar o log html com os erros para você poder
checar, e caso quiser saber se o e-mail foi enviado ou não o código é o retorno da variável do
Scriptcase:

if ({sc_mail_ok}) {
    echo 'OK ENVIADO!';	
} else {
    echo 'ERRO!';		
}

Então resumindo colocando-se echo na frente da macro é perda tempo, já que
não tem utilidade prática nenhuma, como você percebeu quando usou.

2 Curtidas

OK, obrigado pelas respostas Jailton.

1 Curtida

Vocês conseguem fazer o “sc_mail_send” funcionar no Linux?
Já tentei de várias formas e nada!
Trabalho com o ambiente de desenvolvimento hospedado na Amazon.

1 Curtida

Oi Ricardo,
Eu não tive grandes problemas com ele no host do próprio ScriptCase que eu uso para desenvolvimento e nem no Hostgator onde coloquei em produção há uns 3 anos atrás. Só tive esse problema no ValueHost, com o echo sc_mail_send, mas porque não sabia que não podia usar echo antes do sc_mail_send (ainda não estou muito convencido, mas não quero causar polêmicas).
O ambiente do Hostgator quanto do ValueHost é Linux 64 bits.
Você já verificou se o seu e-mail não está caindo na pasta spam ou lixo eletronico do seu e-mail destino ?

1 Curtida

lembrando que você pode utilizar o try e
catch para pegar as exceptions tbm;

1 Curtida