Além da classe tWFProcess() existe alguma outra rotina padrão do sistema que faça o envio de e-mails e tenha tratamentos de erro, caso não consiga enviar de imediato ele envia posteriormente ?
As classes TMailManager() e TMailMng() sempre funcionam de imediato, se por qualquer problema não for possível enviar o e-mail é perdido, então em vários cenários não é interessante.
Essa classe tWFProcess() é bem interessante por esse recurso, a única questão é que ela obriga ter um arquivo HTML modelo para o corpo da mensagem, se ela funcionasse sem precisar do HTML seria show e atenderia o que preciso aqui.
Infelizmente nenhuma tem tratamento de erro. A nao ser qie vx criei seu proprio log
Olá,
Não existe.
A classe TWFProcess
possui tratamentos devido a questão de workflow, porém internamente, ela vai usar as classes do binário para envio de e-mail, que são TMailMessage
, TMailManager
ou TMailMng
.
Para criar uma tratativa de erro, você teria que encapsular essas classes e assim desenvolver sua própria classe/função de envio de e-mail, salvando os dados em banco por exemplo, fazendo um retry na falha de envio e gerando log após N tentativas para evitar um loop infinito etc.
Documentações:
Classe TMailManager - TOTVSTEC - TDN
Classe TMailMng - TOTVSTEC - TDN
Classe TMailMessage - TOTVSTEC - TDN
TWFProcess - Linha Microsiga Protheus - TDN
@dadinel nem teria alguma forma de usar essa classe em precisar do HTML ?
Consegui injetar diretamente o texto do e-mail, independente do HTML, o que já me resolve esse impasse de ficar gravando arquivos HTML só para ele carregar. Utilizei o seguinte comando:
tWFProcess():oHtml:LoadStream(‘teste de texto no email’)
Até tentei usar a propriedade cBody mas não funcionou.