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 faz | Detalhe |
|---|---|
| Seleciona o motor de envio de e-mail | 1 = Programa Padrao (MAPI/Outlook), 2 = Envio Direto (Indy), 3 = Envio Direto (Synapse) |
Influencia a DLL PJunsoftEmail.dll | Opcoes 2 e 3 chamam EnviaEmailIndy ou EnviaEmailSynapse da DLL |
| Padrao editavel por usuario | Sim, cada usuario pode ter seu proprio modelo na tela ADM012 |
Telas impactadas
| Tela | Nome | Como e impactada |
|---|---|---|
ADM012 | Parametros do Usuario | Configuracao direta do parametro nesta tela |
ADM021 | Contas de E-mail | Tambem possui ST_MODELOEMAIL (nivel da conta de e-mail); o sistema faz COALESCE preferindo a conta ao usuario |
ADM013 | Usuarios / Duplicacao de Usuario | O parametro e copiado ao duplicar um usuario (btnDuplicaUsuarioClick) |
CNF015 | Envio de NF-e | Usa o valor de ST_MODELOEMAIL para definir o motor de envio |
Formularios de envio (jSendEmail) | Envio geral de e-mail | Exibe no cabecalho o modelo ativo: Programa de Email Padrao, Email Direto (Indy) ou Email Direto (Synapse) |
Campo envolvido
| Campo | Tabela | Tipo | Padrao | Obrigatorio |
|---|---|---|---|---|
ST_MODELOEMAIL | PARMUSUARIO | CHAR(1) | '1' | Sim (NOT NULL) |
Opcoes disponiveis
1 - Programa Padrao (MAPI)
| O que faz | Detalhe |
|---|---|
| Usa cliente de e-mail Mapi | Abre o Outlook (ou outro cliente MAPI configurado) para enviar |
| Nao requer configuracao SMTP | Depende do cliente MAPI estar configurado na maquina do usuario |
Simulacao passo a passo
- Acesse ADM012 — Parametros do Usuario.
- Localize o campo "Modelo de E-mail".
- Selecione a opcao
1 - Programa Padrao. - 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 faz | Detalhe |
|---|---|
| Envia via componentes Indy (IdSMTP) | Nao depende de cliente de e-mail externo |
| Exige SMTP configurado | Usa as configuracoes da ADM002 ou da conta de e-mail (ADM021) |
Usa PJunsoftEmail.dll | Chama EnviaEmailIndy da DLL |
Simulacao passo a passo
- Acesse ADM012 — Parametros do Usuario.
- Localize o campo "Modelo de E-mail".
- Selecione a opcao
2 - Envio Direto (Indy). - Salve o registro.
- 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
ADM002e/ou na conta de e-mail emADM021.
3 - Envio Direto (Synapse)
| O que faz | Detalhe |
|---|---|
| Envia via Synapse | Alternativa ao Indy; tambem nao depende de cliente de e-mail |
| Exige SMTP configurado | Usa as configuracoes da ADM002 ou da conta de e-mail (ADM021) |
Usa PJunsoftEmail.dll | Chama EnviaEmailSynapse da DLL |
Simulacao passo a passo
- Acesse ADM012 — Parametros do Usuario.
- Localize o campo "Modelo de E-mail".
- Selecione a opcao
3 - Envio Direto (Synapse). - Salve o registro.
- 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
| Rotina | Arquivo | Linha | Uso |
|---|---|---|---|
iniciar | source/ADM002/UADM002.pas | 437 | Leia o campo para carregar configuracao do usuario |
TdmADM012.tabPARMUSUARIOAfterInsert | source/ADM012/UdmADM012.pas | 249 | Define padrao '1' em novos registros |
TfrmADM013.btnDuplicaUsuarioClick | source/ADM013/UADM013.pas | 473 | Copia o valor ao duplicar usuario |
TdmADM021.tabCONTASEMAILAfterInsert | source/ADM021/UdmADM021.pas | 114 | Define padrao 1 para conta de e-mail |
EmailDireto | source/CNF015/UCNF015.pas | 508 | Seleciona ST_MODELOEMAIL do usuario para definir motor de envio |
TdmEnviaEmail.StartConexao | source/JunsoftEmail/UdmEnviaEmail.pas | 63 | Seleciona ST_MODELOEMAIL da conta de e-mail |
TdmEnviaEmail.ReconectarSrvEmail | source/JunsoftEmail/UdmEnviaEmail.pas | 345 | Seleciona ST_MODELOEMAIL da conta de e-mail |
EnviaEmailDireto | source/JunsoftGerNotas/Utils/UUtils.pas | 369 | COALESCE(C.ST_MODELOEMAIL, PU.ST_MODELOEMAIL) para definir motor |
iniciar | source/TRD013/UTRD013.pas | 183 | Seleciona ST_MODELOEMAIL do usuario |
TfrmTRD013.chkNOTASFISCAISClick | source/TRD013/UTRD013.pas | 1056 | Seleciona ST_MODELOEMAIL para notas fiscais |
TfrmTRD013.chkNOTASFISCAISKeyPress | source/TRD013/UTRD013.pas | 1079 | Seleciona ST_MODELOEMAIL para notas fiscais |
EnviarEmail | source/jSendEmail/jEmail.pas | 160 | COALESCE(C.ST_MODELOEMAIL, PU.ST_MODELOEMAIL) com exibicao no UI |
EnviaEmailDireto | source/jSendEmail/jEmail.pas | 211 | COALESCE(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
CONTASEMAILcomoST_MODELOEMAIL DOM_INTEGER DEFAULT 1 NOT NULL`` e pode ser configurado por conta de e-mail emADM021`. - A
DLL PJunsoftEmail.dlle necessaria para as opcoes 2 e 3. Sem ela, o envio direto nao funciona.