Pular para o conteúdo principal

ST_MODELOEMAIL - Modelo de Envio de E-mail

Tela de configuracao: ADM012 - Parametros do Usuario
Tabela: PARMUSUARIO.ST_MODELOEMAIL
Valor padrao: 1 (Programa Padrao)

O que faz​

Define qual mecanismo de envio de e-mail o sistema utilizara ao executar rotinas de e-mail (CNF015, envio de NF-e, geracao de etiquetas, rotinas via jSendEmail, etc.).

O que fazDetalhe
Seleciona o motor de envio de e-mail1 = Programa Padrao (MAPI/Outlook), 2 = Envio Direto (Indy), 3 = Envio Direto (Synapse)
Influencia a DLL PJunsoftEmail.dllOpcoes 2 e 3 chamam EnviaEmailIndy ou EnviaEmailSynapse da DLL
Padrao editavel por usuarioSim, cada usuario pode ter seu proprio modelo na tela ADM012

Telas impactadas​

TelaNomeComo e impactada
ADM012Parametros do UsuarioConfiguracao direta do parametro nesta tela
ADM021Contas de E-mailTambem possui ST_MODELOEMAIL (nivel da conta de e-mail); o sistema faz COALESCE preferindo a conta ao usuario
ADM013Usuarios / Duplicacao de UsuarioO parametro e copiado ao duplicar um usuario (btnDuplicaUsuarioClick)
CNF015Envio de NF-eUsa o valor de ST_MODELOEMAIL para definir o motor de envio
Formularios de envio (jSendEmail)Envio geral de e-mailExibe no cabecalho o modelo ativo: Programa de Email Padrao, Email Direto (Indy) ou Email Direto (Synapse)

Campo envolvido​

CampoTabelaTipoPadraoObrigatorio
ST_MODELOEMAILPARMUSUARIOCHAR(1)'1'Sim (NOT NULL)

Opcoes disponiveis​

1 - Programa Padrao (MAPI)​

O que fazDetalhe
Usa cliente de e-mail MapiAbre o Outlook (ou outro cliente MAPI configurado) para enviar
Nao requer configuracao SMTPDepende do cliente MAPI estar configurado na maquina do usuario

Simulacao passo a passo​

  1. Acesse ADM012 — Parametros do Usuario.
  2. Localize o campo "Modelo de E-mail".
  3. Selecione a opcao 1 - Programa Padrao.
  4. Salve o registro.

Ao enviar um e-mail por qualquer rotina do sistema (ex: CNF015), o Outlook ou cliente MAPI padrao sera aberto para compor e enviar a mensagen.

Resultado esperado: O sistema delega o envio ao cliente MAPI configurado na maquina do usuario.

2 - Envio Direto (Indy)​

O que fazDetalhe
Envia via componentes Indy (IdSMTP)Nao depende de cliente de e-mail externo
Exige SMTP configuradoUsa as configuracoes da ADM002 ou da conta de e-mail (ADM021)
Usa PJunsoftEmail.dllChama EnviaEmailIndy da DLL

Simulacao passo a passo​

  1. Acesse ADM012 — Parametros do Usuario.
  2. Localize o campo "Modelo de E-mail".
  3. Selecione a opcao 2 - Envio Direto (Indy).
  4. Salve o registro.
  5. Execute uma rotina de envio de e-mail (ex: CNF015 ou jSendEmail).

Ao enviar um e-mail, o sistema conecta-se diretamente ao servidor SMTP configurado (host, porta, usuario, senha) e envia sem intermediario, usando os componentes Indy do Delphi.

O formulario de envio exibe no titulo: "[Modelo: Email Direto (Indy)]".

Resultado esperado: E-mail enviado diretamente pelo sistema via SMTP (Indy), sem abrir cliente de e-mail.

Importante: Requer que as configuracoes SMTP estejam corretas (host, porta, usuario, senha, autenticacao SSL/TLS). Se estiverem ausentes ou incorretas, o envio falha. As configuracoes sao definidas na ADM002 e/ou na conta de e-mail em ADM021.

3 - Envio Direto (Synapse)​

O que fazDetalhe
Envia via SynapseAlternativa ao Indy; tambem nao depende de cliente de e-mail
Exige SMTP configuradoUsa as configuracoes da ADM002 ou da conta de e-mail (ADM021)
Usa PJunsoftEmail.dllChama EnviaEmailSynapse da DLL

Simulacao passo a passo​

  1. Acesse ADM012 — Parametros do Usuario.
  2. Localize o campo "Modelo de E-mail".
  3. Selecione a opcao 3 - Envio Direto (Synapse).
  4. Salve o registro.
  5. Execute uma rotina de envio de e-mail (ex: CNF015 ou jSendEmail).

Ao enviar um e-mail, o sistema conecta-se diretamente ao servidor SMTP configurado e utiliza Synapse como motor de envio.

O formulario de envio exibe no titulo: "[Modelo: Email Direto (Synapse)]".

Resultado esperado: E-mail enviado diretamente pelo sistema via SMTP (Synapse), sem abrir cliente de e-mail.

Importante: Assim como a opcao Indy, exige SMTP configurado corretamente. A diferenca e a biblioteca utilizada internamente (Synapse em vez de Indy).

Precedencia de resolucao do valor​

Quando o sistema resolve qual modelo de envio usar, a consulta SQL segue esta logica de precedencia:

SELECT COALESCE(C.ST_MODELOEMAIL, PU.ST_MODELOEMAIL)
FROM USUARIO U
LEFT JOIN PARMUSUARIO PU ...
LEFT JOIN CONTASEMAIL C ON (C.CD_CONTAEMAIL = U.CD_CONTAEMAIL)
WHERE U.CD_USUARIO = ...

Ou seja: a conta de e-mail (CONTASEMAIL.ST_MODELOEMAIL) prevalece sobre o parametro do usuario (PARMUSUARIO.ST_MODELOEMAIL). Se a conta de e-mail tiver um modelo definido, esse sera usado. Caso contrario, recai para o parametro do usuario.

Procedures impactadas​

Rotinas Delphi com referencia direta ao campo​

RotinaArquivoLinhaUso
iniciarsource/ADM002/UADM002.pas437Leia o campo para carregar configuracao do usuario
TdmADM012.tabPARMUSUARIOAfterInsertsource/ADM012/UdmADM012.pas249Define padrao '1' em novos registros
TfrmADM013.btnDuplicaUsuarioClicksource/ADM013/UADM013.pas473Copia o valor ao duplicar usuario
TdmADM021.tabCONTASEMAILAfterInsertsource/ADM021/UdmADM021.pas114Define padrao 1 para conta de e-mail
EmailDiretosource/CNF015/UCNF015.pas508Seleciona ST_MODELOEMAIL do usuario para definir motor de envio
TdmEnviaEmail.StartConexaosource/JunsoftEmail/UdmEnviaEmail.pas63Seleciona ST_MODELOEMAIL da conta de e-mail
TdmEnviaEmail.ReconectarSrvEmailsource/JunsoftEmail/UdmEnviaEmail.pas345Seleciona ST_MODELOEMAIL da conta de e-mail
EnviaEmailDiretosource/JunsoftGerNotas/Utils/UUtils.pas369COALESCE(C.ST_MODELOEMAIL, PU.ST_MODELOEMAIL) para definir motor
iniciarsource/TRD013/UTRD013.pas183Seleciona ST_MODELOEMAIL do usuario
TfrmTRD013.chkNOTASFISCAISClicksource/TRD013/UTRD013.pas1056Seleciona ST_MODELOEMAIL para notas fiscais
TfrmTRD013.chkNOTASFISCAISKeyPresssource/TRD013/UTRD013.pas1079Seleciona ST_MODELOEMAIL para notas fiscais
EnviarEmailsource/jSendEmail/jEmail.pas160COALESCE(C.ST_MODELOEMAIL, PU.ST_MODELOEMAIL) com exibicao no UI
EnviaEmailDiretosource/jSendEmail/jEmail.pas211COALESCE(C.ST_MODELOEMAIL, PU.ST_MODELOEMAIL) para motor de envio

Referencias SQL diretas ao campo​

Nao foram encontradas referencias diretas ao campo em Scripts/ (stored procedures/views).

Candidatas por uso da tabela​

Estas rotinas em Scripts/ usam a tabela PARMUSUARIO, mas nao citam o campo literalmente. Validar antes de afirmar impacto funcional direto.

  • CANCELA_NOTAFISCAL (Scripts/CANCELA_NOTAFISCAL.sql)
  • CONTROLE_CAIXA (Scripts/CONTROLE_CAIXA.sql)
  • GERA_ETIQUETABALANCA (Scripts/GERA_ETIQUETABALANCA.sql)
  • PERMISSAO_CAIXA (Scripts/PERMISSAO_CAIXA.sql)
  • RETORNA_IMPRESSORAUSUARIO (Scripts/RETORNA_IMPRESSORAUSUARIO.sql)
  • TRGPARMFATUR_BU (Scripts/TRGPARMFATUR_BU.sql)
  • VALIDA_BLOQDESCMAXSUBGRUPO (Scripts/VALIDA_BLOQDESCMAXSUBGRUPO.sql)
  • VALIDA_CODIGOBARRA (Scripts/VALIDA_CODIGOBARRA.sql)
  • VALIDA_LIBERACAOUSUARIO (Scripts/VALIDA_LIBERACAOUSUARIO.sql)
  • VALIDA_MODELOBLOQUEIODIASATRASO (Scripts/VALIDA_MODELOBLOQUEIODIASATRASO.sql)
  • VALIDA_MODELOBLOQUEIOPCDESCMAX (Scripts/VALIDA_MODELOBLOQUEIOPCDESCMAX.sql)
  • VALIDA_MODELOBLOQUEIOVLLIMITE (Scripts/VALIDA_MODELOBLOQUEIOVLLIMITE.sql)
  • VERIFICA_BLOQUEIO (Scripts/VERIFICA_BLOQUEIO.sql)
  • VIEW_DOCUMENTOSBLOQUEADOS (Scripts/VIEW_DOCUMENTOSBLOQUEADOS.sql)

nenhuma delas referencia ST_MODELOEMAIL literalmente — provavel impacto zero para este parametro especifico.

Observacoes​

  • O campo tambem existe na tabela CONTASEMAIL como ST_MODELOEMAIL DOM_INTEGER DEFAULT 1 NOT NULL`` e pode ser configurado por conta de e-mail em ADM021`.
  • A DLL PJunsoftEmail.dll e necessaria para as opcoes 2 e 3. Sem ela, o envio direto nao funciona.