Páginas filhas
  • LGX - LMAIL

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Pagetitle
LGX - LMAIL
LGX - LMAIL
Componente de envio de e-mail que permite alterar as configurações de conexão SMTP padrões Logix.


Hierarquia



Métodos GET


Métodos acessíveis através da função _ADVPL_get_property que permite recuperar e manipular os valores do componente:


Expandir
titleGET MAIL_BCC

Método GET: MAIL_BCC

Endereço(s) de e-mail em cópia oculta.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_BCC") => ()

Retorno



TipoDescrição
()

Endereço(s) de e-mail em cópia oculta.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_bcc = _ADVPL_get_property(l_mail_reference,"MAIL_BCC")



Expandir
titleGET MAIL_BODY

Método GET: MAIL_BODY

Corpo da mensagem do e-mail.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_BODY") => Mensagem

Retorno



TipoDescrição
CHAR

Texto com o corpo da mensagem de e-mail.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_body = _ADVPL_get_property(l_mail_reference,"MAIL_BODY")



Expandir
titleGET MAIL_CC

Método GET: MAIL_CC

Endereço(s) de e-mail em cópia.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_CC") => E-mail

Retorno



TipoDescrição
CHAR

Endereço(s) de e-mail em cópia.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_cc = _ADVPL_get_property(l_mail_reference,"MAIL_CC")



Expandir
titleGET MAIL_CONFIRM_READ

Método GET: MAIL_CONFIRM_READ

Confirmação de leitura.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_CONFIRM_READ") => Confirma leitura?

Retorno



TipoDescrição
BOOLEAN

Indicador que define se será solicitado confirmação de leitura do e-mail.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_confirm_read = _ADVPL_get_property(l_mail_reference,"MAIL_CONFIRM_READ")



Expandir
titleGET MAIL_FROM

Método GET: MAIL_FROM

Endereço de e-mail remetente.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_FROM") => E-mail 

Retorno



TipoDescrição
CHAR

Endereço de e-mail remetente.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_from = _ADVPL_get_property(l_mail_reference,"MAIL_FROM")



Expandir
titleGET MAIL_REPLY_TO

Método GET: MAIL_REPLY_TO

Endereço(s) de e-mail de resposta.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_REPLY_TO") => E-mail

Retorno



TipoDescrição
CHAR

Endereço de e-mail de resposta.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_reply_to  = _ADVPL_get_property(l_mail_reference,"MAIL_REPLY_TO")



Expandir
titleGET MAIL_STATUS

Método GET: MAIL_STATUS

Situação do envio de e-mail.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_STATUS") => Situação

Retorno



TipoDescrição
BOOLEAN

Situação do envio de e-mail através da confirmação da tela de configuração do e-mail.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_status = _ADVPL_get_property(l_mail_reference,"MAIL_STATUS")



Expandir
titleGET MAIL_SUBJECT

Método GET: MAIL_SUBJECT

Assunto do e-mail.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_SUBJECT") => Assunto

Retorno



TipoDescrição
CHAR

Texto com o assunto do e-mail.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_subject = _ADVPL_get_property(l_mail_reference,"MAIL_SUBJECT")



Expandir
titleGET MAIL_TO

Método GET: MAIL_TO

Endereço(s) de e-mail destinatário(s).

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_TO") => E-mail

Retorno



TipoDescrição
CHAR

Endereço(s) de e-mail destinatário(s).


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_to = _ADVPL_get_property(l_mail_reference,"MAIL_TO")



Expandir
titleGET MAIL_TYPE

Método GET: MAIL_TYPE 

Tipo da mensagem de e-mail.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"MAIL_TYPE") => Tipo

Retorno



TipoDescrição
CHAR

Tipo de mensagem de e-mail, sendo:

    • TEXT.
    • HTML.
    • CALENDAR.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_mail_type = _ADVPL_get_property(l_mail_reference,"MAIL_TYPE")



Expandir
titleGET SEND_MAIL

Método GET: SEND_MAIL

Envia e-mail conforme configurações informadas.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"SEND_MAIL") => Situação

Retorno



TipoDescrição
BOOLEAN

Situação do envio do e-mail conforme configurações informadas.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_status = _ADVPL_get_property(l_mail_reference,"SEND_MAIL")



Expandir
titleGET SHOW_MAIL_OPTIONS

Método GET: SHOW_MAIL_OPTIONS

Exibe a tela de configuração do e-mail.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"SHOW_MAIL_OPTIONS") => Situação

Retorno



TipoDescrição
BOOLEAN

Retorna se o usuário confirmou ou não as configurações na tela de envio de e-mail.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_status = _ADVPL_get_property(l_mail_reference,"SHOW_MAIL_OPTIONS")



Expandir
titleGET SMTP_EMAIL

Método GET: SMTP_EMAIL

Endereço de e-mail remetente fixo.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"SMTP_EMAIL") => E-mail

Retorno



TipoDescrição
CHAR

Endereço de e-mail remetente fixo.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_smtp_email = _ADVPL_get_property(l_mail_reference,"SMTP_EMAIL")



Expandir
titleGET SMTP_PASSWORD

Método GET: SMTP_PASSWORD

Senha de conexão com o servidor SMTP.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"SMTP_PASSWORD") => Senha

Retorno



TipoDescrição
CHAR

Senha de conexão com o servidor SMTP.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_smtp_password = _ADVPL_get_property(l_mail_reference,"SMTP_PASSWORD")



Expandir
titleGET SMTP_PORT

Método GET: SMTP_PORT

Porta de conexão com o servidor SMTP.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"SMTP_PORT") => Porta

Retorno



TipoDescrição
()

Porta de conexão com o servidor SMTP.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_smtp_port = _ADVPL_get_property(l_mail_reference,"SMTP_PORT")



Expandir
titleGET SMTP_PROTOCOL

Método GET: SMTP_PROTOCOL

Protocolo de segurança para conexão SMTP.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"SMTP_PROTOCOL") => Protocolo

Retorno



TipoDescrição
CHAR

Protocolo de segurança para a conexão com o servidor SMTP, sendo:

    • SSL.
    • TLS.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_stmp_protocol = _ADVPL_get_property(l_mail_reference,"SMTP_PROTOCOL")



Expandir
titleGET SMTP_SERVER

Método GET: SMTP_SERVER 

Servidor SMTP.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"SMTP_SERVER") => Servidor SMTP

Retorno



TipoDescrição
CHAR

Servidor SMTP definido para o envio de e-mail.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_smtp_server = _ADVPL_get_property(l_mail_reference,"SMTP_SERVER")



Expandir
titleGET SMTP_TIMEOUT

Método GET: SMTP_TIMEOUT

Tempo máximo de tentativa de conexão.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"SMTP_TIMEOUT") => Tempo

Retorno



TipoDescrição
()

Tempo máximo, em segundos, de tentativa de conexão com o servidor SMTP.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_smtp_timeout = _ADVPL_get_property(l_mail_reference,"SMTP_TIMEOUT")



Expandir
titleGET SMTP_USER

Método GET: SMTP_USER

Usuário de conexão com o servidor SMTP.

Sintaxe



Bloco de código
_ADVPL_get_property(l_mail_reference,"SMTP_USER") => Usuário

Retorno



TipoDescrição
CHAR

Nome do usuário de conexão com o servidor SMTP.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
  LET l_smtp_user = _ADVPL_get_property(l_mail_reference,"SMTP_USER")




Métodos SET


utilizando a função _ADVPL_set_property que permite alterar e manipular os valores do componente.


Expandir
titleSET ADD_TABLEATTACH

Método SET: ADD_

TABLE

ATTACH

Adiciona um arquivo anexo ao e-mail

Adiciona uma tabela, cadastrada no metadado, na tela de pesquisa.

Sintaxe



Bloco de código
_ADVPL_set_property(< cReferencel_mail_reference >,"ADD_TABLEATTACH",< cTable /Arquivo>, < Arquivo local?>)

Parâmetros



NomeTipoDescriçãoObrigatório?
  cTable  ArquivoCHARNome da tabelaCaminho completo do arquivo que será anexado ao e-mail.Sim
Exemplo
Arquivo local?BOOLEANIndicador que define se o arquivo de anexo está na maquina local ou no servidor.Sim

(informação) Importante: os arquivos informados neste método, serão copiados para uma pasta temporária. Portanto é necessário acionar o método REMOVE_ATTACH após o envio do e-mail.

Exemplo



Bloco de código
languageruby
theme
Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property( <cReference>, l_mail_reference,"ADD_TABLEATTACH","C:\\teste.txt", <cTable> TRUE)




Expandir
titleSET ADDMAIL_COLUMNCC

Método SET:

ADD

MAIL_

COLUMN

CC

Endereço(s) de e-mail em cópia oculta

Valor quando a caixa de seleção estiver assinalada.

Sintaxe



Bloco de código
_ADVPL_set_property(< cReferencel_mail_reference >,"ADDMAIL_COLUMN",, <cTable>, <cColumn>, [cParent], [cZoom]CC")

Parâmetros



NomeTipoDescriçãoObrigatório?
cTable E-mailCHARNome da tabela da colunaEndereço(s) de e-mail em cópia oculta.Sim
cColumnCHARNome da coluna.Sim
cParentCHARNome do objeto pai da coluna (para colunas virtuais).opcional, padrão: NULL
cZoomCHARNome do zoom da coluna.opcional, padrão: NULL

Exemplo

(informação) Importante: os e-mails devem ser separados por ponto-e-vírgula (;).

Exemplo



Bloco de código
languageruby
Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property( <cReference>, "ADD_COLUMN", <cTable>, <cColumn>, [cParent], [cZoom] l_mail_reference,"MAIL_CC","[email protected]")




Expandir
titleSET ADD_VIRTUAL_TABLEMAIL_BODY

Método SET:

ADD

MAIL_

VIRTUAL_TABLE

BODY

Corpo da mensagem do e-mail

Adiciona uma tabela na tela de pesquisa.

Sintaxe



Bloco de código
_ADVPL_set_property( <cReference>, "ADD_VIRTUAL_TABLE", <cTable>, <cLabel> < l_mail_reference >,"MAIL_BODY",< Mensagem >)

Parâmetros



NomeTipoDescriçãoObrigatório?
cTableMensagemCHARNome da tabelaTexto com o corpo da mensagem de e-mail.Sim
cLabelCHARDescrição da tabela.Sim

(informação) Podem ser utilizados comandos HTML no corpo da mensagem.

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
     CALL _ADVPL_set_property( <cReference>, "ADD_VIRTUAL_TABLE", <cTable>, <cLabel> )     l_mail_reference,"MAIL_BODY","Teste de envio de e-mail através do Logix")




Expandir
titleSET ADDMAIL_VIRTUAL_COLUMNCC

Método SET:

ADD

MAIL_

VIRTUAL_COLUMN

CC

Endereço(s) de e-mail em cópia

Adiciona uma coluna da tabela na tela de pesquisa.

Sintaxe



Bloco de código
_ADVPL_set_property( <cReference>, "ADD_VIRTUAL_COLUMN", <cTable>, <cColumn>, <cLabel>, <nType>, <nSize>, [nPrecision], [cZoom], [cPicture] )< l_mail_reference >,"MAIL_CC",< E-mail >)

Parâmetros



NomeTipoDescriçãoObrigatório?
cTable E-mailCHARNome da tabela da colunaEndereço(s) de e-mail em cópia.SimcColumnCHARNome da coluna.
cLabelCHARDescrição da tabela.Sim
nTypeINTEGER

Tipo de dado da coluna, sendo:

1–CHAR,

2–SMALLINT,

3–INTEGER,

4–DECIMAL,

5–DATE,

6–DATETIME,

7–VARCHAR,

8–SERIAL e

9–IMAGE

Sim
nSizeINTEGERTamanho da coluna.Sim
nPrecisionINTEGERPrecisão da coluna.opcional, padrão: 0
cZoomCHARNome do zoom da coluna.opcional, padrão: NULL
cPictureCHAR
Máscara de edição da coluna
*** válido a partir do pacote Logix 12.1.15 ***
opcional, padrão: NULL

Exemplo

(informação) Importante: os e-mails devem ser separados por ponto-e-vírgula (;).

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property(l_mail_reference,"MAIL_CC","[email protected]")




Expandir
titleSET MAIL_CONFIRM_READ

Método SET: MAIL_CONFIRM_READ

Confirmação de leitura.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_mail_reference >,"MAIL_CONFIRM_READ",< Confirma leitura?>)

Parâmetros



NomeTipoDescriçãoObrigatório?
 Confirma leitura?CHARIndicador que define se será solicitado confirmação de leitura do e-mail.Sim

Exemplo



Bloco de código
language
Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property( <cReference>, "ADD_VIRTUAL_COLUMN", <cTable>, <cColumn>, <cLabel>, <nType>, <nSize>, [nPrecision], [cZoom], [cPicture] )l_mail_reference,"MAIL_CONFIRM_READ",TRUE)




Expandir
titleSET MAIL_FROM

Método SET: AD MAIL_FROM

Endereço de e-mail remetente

Expandir
titleSET VISIBLE_ORDER_BY

Método SET: VISIBLE_ORDER_BY

Habilita/desabilita a aba de ordenação de registros.

Sintaxe



Bloco de código
_ADVPL_set_property( <cReference>, "VISIBLE_ORDER_BY", <nVisible>< l_mail_reference >,"MAIL_FROM",<  E-mail >)

Parâmetros



NomeTipoDescriçãoObrigatório?
nVisible E-mailBOOLEANCHAREndereço de e-mail remetenteVerdadeiro para habilitar a aba de ordenação, falso para desabilitar.Sim

(informação) Importante: os e-mail devem ser separados por ponto-e-vírgula (;).

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
     CALL _ADVPL_set_property( <cReference>, "VISIBLE_ORDER_BY", <nVisible> )   l_mail_reference,"MAIL_FROM","[email protected]")




Expandir
titleSET VISIBLEMAIL_FILTERREPLY_BASICTO

Método SET:

VISIBLE

MAIL_

FILTER

REPLY_

BASIC

TO

Endereço(s) de e-mail de resposta

Habilita/desabilita a aba de filtro básico.

Sintaxe



Bloco de código
_ADVPL_set_property( <cReference>, "VISIBLE_FILTER_BASIC", <nVisible> < l_mail_reference >,"MAIL_REPLY_TO",< E-mail >)

Parâmetros



Sim
NomeTipoDescriçãoObrigatório?
nVisibleE-mailBOOLEANVerdadeiro para habilitar a aba de filtro básico, falso para desabilitar.CHAREndereço de e-mail de resposta.Sim

(informação) Importante: os e-mail devem ser separados por ponto-e-vírgula (;).

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
     CALL _ADVPL_set_property( <cReference>, "VISIBLE_FILTER_BASIC", <nVisible> )  l_mail_reference,"MAIL_REPLY_TO","[email protected]")




Expandir
titleSET VISIBLEMAIL_FILTER_ADVANCEDSUBJECT

Método SET:

VISIBLE

MAIL_

FILTER_ADVANCED

SUBJECT

Assunto do e-mail

Habilita/desabilita a aba de filtro avançado.

Sintaxe



Bloco de código
_ADVPL_set_property( <cReference>, "VISIBLE_FILTER_ADVANCED", <nVisible> < l_mail_reference >,"MAIL_SUBJECT",< Assunto >)

Parâmetros



NomeTipoDescriçãoObrigatório?
nVisibleAssunto BOOLEANCHARTexto com o assunto do e-mailVerdadeiro para habilitar a aba de filtro avançado, falso para desabilitar.Sim


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
     CALL _ADVPL_set_property( <cReference>, "VISIBLE_FILTER_ADVANCED", <nVisible> )     l_mail_reference,"MAIL_SUBJECT","Envio de e-mail Logix")




Expandir
titleSET CONSTRUCTMAIL_NAMETO

Método SET:

CONSTRUCT

MAIL_

NAME

TO

Endereço(s) de e-mail destinatário(s)

Define um identificador para o componente.

Sintaxe



Bloco de código
_ADVPL_set_property( <cReference>, "CONSTRUCT_NAME", <cName> < l_mail_reference >,"MAIL_TO",< E-mail >)

Parâmetros



NomeTipoDescriçãoObrigatório?
cName E-mailCHARNome identificador para o componenteEndereço(s) de e-mail destinatário(s).Sim

(informação) Importante: os e-mails devem ser separados por ponto-e-vírgula (;).

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
     CALL _ADVPL_set_property( <cReference>, "CONSTRUCT_NAME", <cName> )     l_mail_reference,"MAIL_TO","[email protected]")




Método válido apenas para programas desenvolvidos em metadado
Expandir
titleSET APPENDMAIL_WHERE_CLAUSETYPE

Método SET:

APPEND

MAIL_

WHERE_CLAUSE

TYPE

Tipo da mensagem de e-mail.

Adiciona um filtro temporário que será descartado após a finalização da tela de pesquisa.
Se uma tabela não for informada neste método, o filtro será geral para todas as tabelas do componente. 

Sintaxe



Bloco de código
_ADVPL_set_property( <cReference>, "APPEND_WHERE_CLAUSE", <cWhere>, [cTable] < l_mail_reference >,"MAIL_TYPE",< Tipo >)

Parâmetros



NomeTipoDescriçãoObrigatório?
cWhereTipoCHARSim
cTableCHARNome da tabela.opcional, padrão: NULL
Nota
Tipo de mensagem de e-mail, sendo:
  • TEXT.
  • HTML.
  • CALENDAR.
Sim

(informação) Importante: se este método não for acionado, será considerado o padrão HTML para o envio de e-mails.

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
     CALL _ADVPL_set_property( <cReference>, "APPEND_WHERE_CLAUSE", <cWhere>, [cTable] )     l_mail_reference,"MAIL_TYPE","HTML")




Método válido apenas para programas desenvolvidos em metadado.

(informação) O índice do arquivo corresponde a ordem em que o arquivo foi anexado ao e-mail.
Importante: se não for informado o índice, serão excluídos todos os arquivos de anexo do e-mail.:

Exemplo



Expandir
titleSET APPENDREMOVE_ORDER_BYATTACH

Método SET:

APPEND_ORDER_BY

REMOVE_ATTACH

Remove um ou mais arquivos de anexo da pasta temporáriaAdiciona uma ordenação temporária para uma determinada coluna, a ordenação será descartada após a finalização da tela de pesquisa.

Sintaxe



Bloco de código
_ADVPL_set_property( <cReference>, "APPEND_ORDER_BY", <cTable>, <cColumn>, <cOrder> < l_mail_reference >,"REMOVE_ATTACH",< [ Índice do arquivo] >)

Parâmetros



NomeTipoDescriçãoObrigatório?
cTableÍndice do arquivoCHARINTEGERÍndice do arquivo de anexoNome da tabela da coluna.Sim
cColumnCHARNome da coluna.Sim
cOrderCHAR

Tipo de ordenação, sendo:

  • ASC - Ordenação crecente ou
  • DESC - Ordenação decrescente
Sim
Nota
Bloco de código
languageruby
themeConfluence
linenumberstrue
     CALL _ADVPL_set_property( <cReference>, "APPEND_ORDER_BY", <cTable>, <cColumn>, <cOrder> )     l_mail_reference,"REMOVE_ATTACH")




Exemplo

Expandir
titleExemplo de utilizaçãoSET SEND_MAIL

Método SET: SEND_MAIL

Habilita/desabilita o envio de e-mail após confirmação da tela de configuração.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_mail_reference >,"SEND_MAIL",< Envia e-mail? >)

Parâmetros



NomeTipoDescriçãoObrigatório?
Envia e-mail?BOOLEANIndicador lógico que define se o e-mail será ou não enviado logo após o usuário informar os dados na tela de configurações do e-mail.Sim

(informação) Importante: O e-mail pode ser enviado manualmente utilizando o método GET SEND_MAIL.

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property(l_mail_reference,"SEND_MAIL",TRUE)




Expandir
titleSET SMTP_EMAIL

Método SET: SMTP_EMAIL

Endereço de e-mail remetente fixo.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_mail_reference >,"SMTP_EMAIL",< E-mail >)

Parâmetros



NomeTipoDescriçãoObrigatório?
E-mailCHAREndereço de e-mail remetente fixo.Sim

(informação) Importante: se este método não for acionado, o componente irá utilizar a configuração padrão do arquivo de profile (logix.mail.smtpEmail).

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property(l_mail_reference,"SMTP_EMAIL","[email protected]")




Expandir
titleSET SMTP_PASSWORD

Método SET: SMTP_PASSWORD

Senha de conexão com o servidor SMTP.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_mail_reference >,"SMTP_PASSWORD",< Senha >)

Parâmetros



NomeTipoDescriçãoObrigatório?
Senha CHARSenha de conexão com o servidor SMTP.Sim

(informação) Importante: se este método não for acionado, o componente irá utilizar a configuração padrão do arquivo de profile (logix.mail.smtpPassword).

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property(l_mail_reference,"SMTP_PASSWORD","**********")




Expandir
titleSET ADD_ATTACH

Método SET: SMTP_PORT

Porta de conexão com o servidor SMTP.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_mail_reference >,"SMTP_PORT",< Porta >)

Parâmetros



NomeTipoDescriçãoObrigatório?
PortaINTEGER Porta de conexão com o servidor SMTP.Sim

(informação) Importante: se este método não for acionado, o componente irá utilizar a configuração padrão do arquivo de profile (logix.mail.smtpPort) e caso esta configuração for nula, irá considerar a porta 587 se a conexão utilizar algum protocolo de segurança, ou a porta 25 se a conexão não utilizar protocolos de segurança.

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
Bloco de código
languageruby
themeConfluence
linenumberstrue
DATABASE logix

 DEFINE ma_tela ARRAY[1000] OF
                RECORD
                    cod_empresa CHAR(02),
                    den_empresa CHAR(36),
                    cod_item    CHAR(15),
                    den_item    CHAR(76)
                END RECORD

 DEFINE m_statusbar_reference,
        m_grid_reference,
        m_construct_reference VARCHAR(10)

 DEFINE m_max_item SMALLINT

#--------------------#
 FUNCTION const0001()
#--------------------#
     DEFINE l_dialog_reference,
            l_menubar_reference,
            l_menubutton_reference,
            l_panel_reference,
            l_layout_reference,
            l_column_reference VARCHAR(10)

     INITIALIZE ma_tela TO NULL

     #Define a quantidade máxima de itens dentro da grid, deve ser alterada
     #sempre que o tamanho do ARRAY ma_tela for alterado também
     LET m_max_item = 1000

     #Conecta-se ao banco de dados
     CALL LOG_connectDatabase("DEFAULT")

     LET l_dialog_reference = _ADVPL_create_component(NULL,"LDIALOG")
     CALL _ADVPL_set_property(l_dialog_reference,"SIZE",640,480)
     CALL _ADVPL_set_property(l_dialog_reference,"TITLE","Exemplo de Utilização: LLAYOUTMANAGER")

     LET m_statusbar_reference = _ADVPL_create_component(NULL,"LSTATUSBAR",l_dialog_reference)
     CALL _ADVPL_set_property(m_statusbar_reference,"VISIBLE_ABOUT",FALSE)
     CALL _ADVPL_set_property(ml_statusbarmail_reference,"VISIBLESMTP_HOTKEYPORT",FALSE)
     CALL _ADVPL_set_property(m_statusbar_reference,"VISIBLE_RESIZE",FALSE)

     LET l_menubar_reference = _ADVPL_create_component(NULL,"LMENUBAR",l_dialog_reference)
     CALL _ADVPL_set_property(l_menubar_reference,"HELP_VISIBLE",FALSE)

     LET l_menubutton_reference = _ADVPL_create_component(NULL,"LFINDBUTTON",l_menubar_reference)
     CALL _ADVPL_set_property(l_menubutton_reference,"EVENT","const0001_find_event")
     CALL _ADVPL_set_property(l_menubutton_reference,"TYPE","NO_CONFIRM")
     CALL _ADVPL_create_component(NULL,"LQUITBUTTON",l_menubar_reference)

     LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_dialog_reference)
     CALL _ADVPL_set_property(l_panel_reference,"ALIGN","CENTER")

     LET l_layout_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL _ADVPL_set_property(l_layout_reference,"MARGIN",TRUE)
     CALL _ADVPL_set_property(l_layout_reference,"COLUMNS_COUNT",1)
     CALL _ADVPL_set_property(l_layout_reference,"EXPANSIBLE",TRUE)

     LET m_grid_reference = _ADVPL_create_component(NULL,"LTABLEEX",l_layout_reference)
     CALL _ADVPL_set_property(m_grid_reference,"ALIGN","CENTER")

     LET l_column_reference = _ADVPL_create_component(NULL,"LTABLECOLUMNEX",m_grid_reference)
     CALL _ADVPL_set_property(l_column_reference,"COLUMN_WIDTH",55)
     CALL _ADVPL_set_property(l_column_reference,"HEADER","Empresa")
     CALL _ADVPL_set_property(l_column_reference,"VARIABLE","cod_empresa")

     LET l_column_reference = _ADVPL_create_component(NULL,"LTABLECOLUMNEX",m_grid_reference)
     CALL _ADVPL_set_property(l_column_reference,"COLUMN_WIDTH",200)
     CALL _ADVPL_set_property(l_column_reference,"HEADER","Descrição da empresa")
     CALL _ADVPL_set_property(l_column_reference,"VARIABLE","den_empresa")

     LET l_column_reference = _ADVPL_create_component(NULL,"LTABLECOLUMNEX",m_grid_reference)
     CALL _ADVPL_set_property(l_column_reference,"COLUMN_WIDTH",120)
     CALL _ADVPL_set_property(l_column_reference,"HEADER","Item")
     CALL _ADVPL_set_property(l_column_reference,"VARIABLE","cod_item")

     LET l_column_reference = _ADVPL_create_component(NULL,"LTABLECOLUMNEX",m_grid_reference)
     CALL _ADVPL_set_property(l_column_reference,"COLUMN_WIDTH",400)
     CALL _ADVPL_set_property(l_column_reference,"HEADER","Descrição do item")
     CALL _ADVPL_set_property(l_column_reference,"VARIABLE","den_item")

     CALL _ADVPL_set_property(m_grid_reference,"SET_ROWS",ma_tela,0)

     CALL _ADVPL_set_property(l_dialog_reference,"ACTIVATE",TRUE)
 END FUNCTION

#-------------------------------#
 FUNCTION const0001_find_event()
#-------------------------------#
     DEFINE l_status SMALLINT
     DEFINE l_where_clause CHAR(500)

     #Se a tela de pesquisa não foi criada, deverá criá-la no primeiro uso
     IF  m_construct_reference IS NULL THEN
         CALL const0001_create_construct_component()
     END IF

     #Inicia a tela de pesquisa
     LET l_status = _ADVPL_get_property(m_construct_reference,"INIT_CONSTRUCT")

     #Verifica se o usuário cancelou a pesquisa
     IF  NOT l_status THEN
         CALL _ADVPL_set_property(m_statusbar_reference,"WARNING_TEXT","Pesquisa cancelada.")
         RETURN FALSE
     END IF

     #Retorna o filtro informado
     LET l_where_clause = _ADVPL_get_property(m_construct_reference,"WHERE_CLAUSE")

     #Efetua a pesquisa na base de dados e exibe em tela
     IF  NOT const0001_find_confirm(l_where_clause) THEN
         CALL _ADVPL_set_property(m_statusbar_reference,"WARNING_TEXT","Argumentos de pesquisa não encontrados.")
         RETURN FALSE
     END IF

     CALL _ADVPL_set_property(m_statusbar_reference,"INFO_TEXT","Pesquisa efetuada com sucesso.")

     RETURN TRUE
 END FUNCTION

#-----------------------------------------------#
 FUNCTION const0001_create_construct_component()
#-----------------------------------------------#
     LET m_construct_reference = _ADVPL_create_component(NULL,"LCONSTRUCT")
     CALL _ADVPL_set_property(m_construct_reference,"CONSTRUCT_NAME","CONS0001_FILTER")

     #Desabilita a aba de ordenação de registros
     CALL _ADVPL_set_property(m_construct_reference,"VISIBLE_ORDER_BY",FALSE)

     #Adiciona a tabela empresa para a consulta e suas colunas
     #Esta tabela não possui cadastro no metadado, então será "virtual"
     CALL _ADVPL_set_property(m_construct_reference,"ADD_VIRTUAL_TABLE","empresa","Empresa")
     CALL _ADVPL_set_property(m_construct_reference,"ADD_VIRTUAL_COLUMN","empresa","cod_empresa","Empresa",1 {CHAR},2,0,"zoom_empresa")
     CALL _ADVPL_set_property(m_construct_reference,"ADD_VIRTUAL_COLUMN","empresa","den_empresa","Descrição da empresa",1 {CHAR},36,0)

     #Adiciona a tabela item para a consulta e suas colunas
     #Esta tabela possui cadastro no metadado, então não será "virtual"
     CALL _ADVPL_set_property(m_construct_reference,"ADD_TABLE","item")
     CALL _ADVPL_set_property(m_construct_reference,"ADD_COLUMN","item","cod_item",NULL {PARENT},"zoom_item")
     CALL _ADVPL_set_property(m_construct_reference,"ADD_COLUMN","item","den_item")
 END FUNCTION

#-----------------------------------------------#
 FUNCTION const0001_find_confirm(l_where_clause)
#-----------------------------------------------#
     DEFINE l_where_clause CHAR(0500),
            l_sql_stmt     CHAR(1000)

     DEFINE l_ind SMALLINT

     LET l_ind = 1

     LET l_sql_stmt = 'SELECT empresa.cod_empresa,empresa.den_empresa,item.cod_item,item.den_item ',
                      'FROM empresa ',
                      'INNER JOIN item ',
                      'ON empresa.cod_empresa = item.cod_empresa ',
                      'WHERE ',l_where_clause CLIPPED,' ',
                      'ORDER BY 1,3'

     WHENEVER ERROR CONTINUE
     PREPARE var_item FROM l_sql_stmt
     WHENEVER ERROR STOP
     IF  sqlca.sqlcode <> 0 THEN
         CALL log003_err_sql("PREPARE SQL","var_item")
         RETURN FALSE
     END IF

     WHENEVER ERROR CONTINUE
     DECLARE cq_item CURSOR FOR var_item
     WHENEVER ERROR STOP
     IF  sqlca.sqlcode <> 0 THEN
         CALL log003_err_sql("DECLARE CURSOR","cq_item")
         RETURN FALSE
     END IF

     WHENEVER ERROR CONTINUE
     FOREACH cq_item INTO ma_tela[l_ind].cod_empresa,
                          ma_tela[l_ind].den_empresa,
                          ma_tela[l_ind].cod_item,
                          ma_tela[l_ind].den_item

         IF  sqlca.sqlcode <> 0 THEN
             CALL log003_err_sql("FOREACH CURSOR","cq_item")
             EXIT FOREACH
         END IF

         LET l_ind = l_ind + 1

         IF  l_ind > m_max_item25)




Expandir
titleSET SMTP_PROTOCOL

Método SET: SMTP_PROTOCOL

Protocolo de segurança para conexão SMTP.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_mail_reference >,"SMTP_PROTOCOL",< Protocolo >)

Parâmetros



NomeTipoDescriçãoObrigatório?
ProtocoloCHARProtocolo de segurança para a conexão com o servidor SMTP, sendo:
  • SSL.
  • TLS.
Sim

(informação) O uso do protocolo de segurança SSL só esta disponível a partir de builds liberados a partir de 2012.
Importante:
 se este método não for acionado, o componente irá utilizar a configuração padrão do arquivo de profile (logix.mail.smtpProtocol).

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property(l_mail_reference,"SMTP_PROTOCOL","TLS")




Expandir
titleSET SMTP_SERVER

Método SET: SMTP_SERVER

Servidor SMTP.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_mail_reference >,"SMTP_SERVER",< Servidor >)

Parâmetros



NomeTipoDescriçãoObrigatório?
ServidorCHAREndereço do servidor SMTP.Sim

(informação) Importante: se este método não for acionado, o componente irá utilizar a configuração padrão do arquivo de profile (logix.mail.smtpServer).

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property(l_mail_reference,"SMTP_SERVER","artemis.totvs.com.br")




Expandir
titleSET SMTP_TIMEOUT

Método SET: SMTP_TIMEOUT

Tempo máximo de tentativa de conexão.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_mail_reference >,"SMTP_TIMEOUT",< Tempo >)

Parâmetros



NomeTipoDescriçãoObrigatório?
 Tempo INTEGERTempo máximo, em segundos, de tentativa de conexão com o servidor SMTP.Sim

(informação) Importante: se este método não for acionado, o componente irá utilizar a configuração padrão do arquivo de profile (logix.mail.smtpTimeOut) e caso esta configuração for nula, irá considerar 30 segundos de tempo máximo de conexão.

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADVPL_set_property(l_mail_reference,"SMTP_TIMEOUT",120)




Expandir
titleSET SMTP_USER

Método SET: SMTP_USER

Usuário de conexão com o servidor SMTP.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_mail_reference >,"SMTP_USER",< Usuário >)

Parâmetros



NomeTipoDescriçãoObrigatório?
UsuárioCHARNome do usuário de conexão com o servidor SMTP.Sim

(informação) Importante: se este método não for acionado, o componente irá utilizar a configuração padrão do arquivo de profile (logix.mail.smtpUser).

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
CALL _ADPVL_set_property(l_mail_reference,"SMTP_USER","silogix")





Exemplo



Expandir
titleExemplo de utilização

(informação) Importante: se os métodos de conexão SMTP_[ATRIBUTO] não possuirem valores, o componente utilizará os valores padrões do Logix para a conexão SMTP.

Bloco de código
languageruby
themeConfluence
linenumberstrue
#----------------# FUNCTION LMail()#----------------#
     DEFINE l_status SMALLINT
     DEFINE l_mail_reference VARCHAR(10)

     LET l_mail_reference = _ADVPL_create_component(NULL,"LMAIL")
     CALL _ADVPL_set_property(l_mail_reference,"SEND_MAIL",TRUE)
     CALL _ADVPL_set_property(l_mail_reference,"MAIL_TYPE","HTML")
     CALL _ADVPL_set_property(l_mail_reference,"MAIL_FROM","[email protected]")
     CALL _ADVPL_set_property(l_mail_reference,"MAIL_TO","[email protected]")
     CALL _ADVPL_set_property(l_mail_reference,"MAIL_SUBJECT","Envio de e-mail LOGIX")
     CALL _ADVPL_set_property(l_mail_reference,"MAIL_BODY","Teste de envio de e-mail através do <b>LOGIX</b>.")

     LET l_status = _ADVPL_get_property(l_mail_reference,"SHOW_MAIL_OPTIONS")
          IF  l_status THEN
         	LET l_status   CALL log0030_mensagem("Quantidade máxima de itens ultrapassados.","excl= _ADVPL_get_property(l_mail_reference,"MAIL_STATUS")
             EXIT FOREACH IF  l_status THEN
         END IF
   CALL  END FOREACH

log0030_mensagem("E-mail envio com sucesso.","info")
     FREE var_item
   ELSE
  FREE cq_item
     WHENEVER ERROR STOP

   CALL  LET l_ind = l_ind - 1

     CALL _ADVPL_set_property(m_grid_reference,"ITEM_COUNT",l_indlog0030_mensagem("Problema ao enviar e-mail, por favor verificar as mensagens no arquivo de LOG.","excl")
     CALL _ADVPL_set_property(m_grid_reference,"REFRESH")

      END IF
   RETURN (l_ind >END 0)
IF END FUNCTION       


Visualização


Image RemovedImage Added