IMAPTransporter
A classe IMAPTransporter
permite-lhe recuperar mensagens a partir de um servidor de correio electrónico IMAP.
Objecto IMAP Transporter
Os objetos do IMAP Transporter são instanciados com o comando IMAP New transporter. Eles oferecem as propriedades abaixo e funções:
.acceptUnsecureConnection : Boolean True if 4D is allowed to establish an unencrypted connection |
.addFlags( msgIDs : Collection ; keywords : Object ) : Object .addFlags( msgIDs : Text ; keywords : Object ) : Object .addFlags( msgIDs : Longint ; keywords : Object ) : Object adiciona sinalizadores aos msgIDs para as keywords especificadas |
.append( mailObj : Object ; destinationBox : Text ; options : Object ) : Object anexa um mailObj à destinationBox |
.authenticationMode : Text the authentication mode used to open the session on the mail server |
.checkConnection() : Object checks the connection using information stored in the transporter object |
.checkConnectionDelay : Integer o tempo máximo (em segundos) permitido antes de verificar a conexão com o servidor |
.connectionTimeOut : Integer the maximum wait time (in seconds) allowed to establish a connection to the server |
.copy( msgsIDs : Collection ; destinationBox : Text ) : Object .copy( allMsgs : Integer ; destinationBox : Text ) : Object copia as mensagens definidas por msgsIDs ou allMsgs para destinationBox no servidor IMAP |
.createBox( name : Text ) : Object cria uma caixa de correio com o name fornecido |
.delete( msgsIDs : Collection ) : Object .delete( allMsgs : Integer ) : Object define o sinalizador "deleted" para as mensagens definidas em msgsIDs ou allMsgs |
.deleteBox( name : Text ) : Object remove permanentemente a caixa de correio com o name fornecido do servidor IMAP |
.expunge() : Object remove todas as mensagens com o sinalizador "deleted" do servidor de e-mail IMAP. |
.getBoxInfo( { name : Text }) : Object retorna um objeto boxInfo correspondente à maibox atual ou à caixa de correio name |
.getBoxList( { parameters : Object } ) : Collection retorna uma coleção de caixas de correio que descreve todas as caixas de correio disponíveis |
.getDelimiter() : Text retorna o caractere usado para delimitar os níveis de hierarquia no nome da caixa de correio |
.getMail( msgNumber: Integer { ; options : Object } ) : Object .getMail( msgID: Text { ; options : Object } ) : Object retorna o objeto Email correspondente ao msgNumber ou msgID na caixa de correio designada pelo IMAP_transporter |
.getMails( ids : Collection { ; options : Object } ) : Object .getMails( startMsg : Integer ; endMsg : Integer { ; options : Object } ) : Object retorna um objeto que contém uma coleção de objetos Email |
.getMIMEAsBlob( msgNumber : Integer { ; updateSeen : Boolean } ) : Blob .getMIMEAsBlob( msgID : Text { ; updateSeen : Boolean } ) : Blob retorna um BLOB contendo o conteúdo MIME da mensagem correspondente ao msgNumber ou msgID na caixa de correio designada pelo IMAP_transporter |
.host : Text the name or the IP address of the host server |
.logFile : Text the path of the extended log file defined (if any) for the mail connection |
.move( msgsIDs : Collection ; destinationBox : Text ) : Object .move( allMsgs : Integer ; destinationBox : Text ) : Object move as mensagens definidas por msgsIDs ou allMsgs para destinationBox no servidor IMAP |
.numToID( startMsg : Integer ; endMsg : Integer ) : Collection converte os números de sequência em IDs exclusivos do IMAP para as mensagens no intervalo sequencial designado por startMsg e endMsg |
.removeFlags( msgIDs : Collection ; keywords : Object ) : Object .removeFlags( msgIDs : Text ; keywords : Object ) : Object .removeFlags( msgIDs : Longint ; keywords : Object ) : Object remove os sinalizadores dos msgIDs para as keywords especificadas |
.renameBox( currentName : Text ; newName : Text ) : Object altera o nome de uma caixa de correio no servidor IMAP |
.port : Integer the port number used for mail transactions |
.searchMails( searchCriteria : Text ) : Collection procura por mensagens que correspondam aos searchCriteria fornecidos na caixa de correio atual |
.selectBox( name : Text { ; state : Integer } ) : Object seleciona a caixa de correio name como a caixa de correio atual |
.subscribe( name : Text ) : Object permite adicionar ou remover a caixa de correio especificada do conjunto de caixas de correio "inscritas" do servidor IMAP |
.unsubscribe( name : Text ) : Object remove uma caixa de correio de um conjunto de caixas de correio inscritas |
.port : Integer the port number used for mail transactions |
IMAP New transporter
História
Release | Mudanças |
---|---|
18 R4 | Adicionado |
IMAP New transporter( server : Object ) : 4D.IMAPTransporter
Parâmetro | Tipo | Descrição | |
---|---|---|---|
server | Object | -> | Informação de servidor de correio |
Resultados | 4D.IMAPTransporter | <- | Objeto do transportador IMAP |
Descrição
O comando IMAP New transporter
configura uma nova conexão IMAP de acordo com o parâmetro server e retorna um novo objeto transporter. O objeto transporter retornado vai geralmente ser usado para receber emails.
No parâmetro server, passe um objeto contendo as propriedades abaixo:
server | Valor padrão (se omitido) |
---|---|
.acceptUnsecureConnection : Boolean True if 4D is allowed to establish an unencrypted connection | False |
.accessTokenOAuth2: Text .accessTokenOAuth2: Objeto Cadeia ou objeto token que representa as credenciais de autorização OAuth2. Usado somente com OAUTH2 authenticationMode . Se accessTokenOAuth2 for usado, mas authenticationMode for omitido, o protocolo OAuth 2 será usado (se permitido pelo servidor). Não retornado no objeto IMAP transporter. | nenhum |
.authenticationMode : Text the authentication mode used to open the session on the mail server | o modo de autenticação mais seguro disponível no servidor é usado |
.checkConnectionDelay : Integer o tempo máximo (em segundos) permitido antes de verificar a conexão com o servidor | 300 |
.connectionTimeOut : Integer the maximum wait time (in seconds) allowed to establish a connection to the server | 30 |
.host : Text the name or the IP address of the host server | mandatory |
.logFile : Text the path of the extended log file defined (if any) for the mail connection | nenhum |
senha : Texto Senha do usuário para autenticação no servidor. Não retornado no objeto IMAP transporter. | nenhum |
.port : Integer the port number used for mail transactions | 993 |
.port : Integer the port number used for mail transactions | nenhum |
Aviso: Certifique-se de que o tempo limite definido seja menor do que o tempo limite do servidor, caso contrário, o tempo limite do cliente será inútil.
Resultados
A função retorna um objeto transportador IMAP. Todas as propriedades retornadas são apenas leitura.
A ligação IMAP é automaticamente fechada quando o objecto transportador é destruído.
Exemplo
$server:=New object
$server.host:="imap.gmail.com" //Obrigatório
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$server.logFile:="LogTest.txt" //log para salvar na pasta Logs
var $transporter : 4D.IMAPTransporter
$transporter:=IMAP New transporter($server)
$status:=$transporter.checkConnection()
If(Not($status.success))
ALERT("An error occurred: "+$status.statusText)
End if
4D.IMAPTransporter.new()
4D.IMAPTransporter.new( server : Object ) : 4D.IMAPTransporter
Parâmetro | Tipo | Descrição | |
---|---|---|---|
server | Object | -> | Informação de servidor de correio |
Resultados | 4D.IMAPTransporter | <- | Objeto transportador IMAP |
Descrição
A função 4D.IMAPTransporter.new()
cria e retorna um novo objeto do tipo 4D.IMAPTransporter
. É idêntico ao comando (atalho) [IMAP New transporter
] (#imap-new-transporter).
.acceptUnsecureConnection
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.acceptUnsecureConnection : Boolean
Descrição
The .acceptUnsecureConnection
property contains True if 4D is allowed to establish an unencrypted connection when encrypted connection is not possible.
It contains False if unencrypted connections are unallowed, in which case an error in returned when encrypted connection is not possible.
Estão disponíveis portos seguros:
-
SMTP
- 465: SMTPS
- 587 ou 25: SMTP com atualização STARTTLS se for compat[ivel com o servidor.
-
IMAP
- 143: IMAP non-encrypted port
- 993: IMAP com atualização STARTTLS se for compatível com o servidor
-
POP3
- 110: Porta não criptografada POP3
- 995: POP3 com atualização STARTTLS se suportado pelo servidor.
.addFlags()
História
Release | Mudanças |
---|---|
20 | Suporta palavras-chave personalizadas |
18 R6 | Adicionado |
.addFlags( msgIDs : Collection ; keywords : Object ) : Object
.addFlags( msgIDs : Text ; keywords : Object ) : Object
.addFlags( msgIDs : Longint ; keywords : Object ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
msgIDs | Collection | -> | Coleção de strings: IDs únicos de mensagens (texto) Texto: ID único de uma mensagem Longint (todos IMAP): Todas as mensagens na caixa de correio seleccionada |
keywords | Object | -> | Flags de palavras chaves a adicionar |
Resultados | Object | <- | Estado da operação addFlags |
Descrição
A função .addFlags()
adiciona sinalizadores aos msgIDs
para as keywords
especificadas.
No parâmetro msgIDs
, você pode passar qualquer um deles:
- uma colecção contendo as identificações únicas de mensagens específicas ou
- o ID único (texto) de uma mensagem ou
- a seguinte constante (longint) para todas as mensagens na caixa de correio selecionada:
Parâmetros | Valor | Comentário |
---|---|---|
IMAP all | 1 | Seleccione todas as mensagens na caixa de correio seleccionada |
O parâmetro keywords
permite que você defina os sinalizadores a serem adicionados aos msgIDs
. Pode passar qualquer uma das seguintes palavras-chave:
Propriedade | Tipo | Descrição |
---|---|---|
$draft | Parâmetros | True para adicionar o marcador "draft" na mensagem |
$seen | Parâmetros | True para adicionar o marcador "seen" na mensagem |
$flagged | Parâmetros | True para adicionar o marcador "flagged" na mensagem |
$answered | Parâmetros | True para adicionar o marcador "answered" na mensagem |
$deleted | Parâmetros | True para adicionar o marcador "deleted" na mensagem |
<custom flag> | Parâmetros | True para adicionar o marcador personalizado na mensagem |
Os nomes das bandeiras personalizadas devem respeitar esta regra: a palavra-chave deve ser um fio não sensível a maiúsculas e minúsculas, excluindo caracteres de controlo e espaço, e não pode incluir nenhum destes caracteres: ( ) { ] % * " \
- Para que uma palavra-chave seja tida em conta, tem de ser true.
- A interpretação dos marcadores de palavras-chave pode variar por cliente de correio.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo
var $options;$transporter;$boxInfo;$status : Object
$options:=New object
$options.host:="imap.gmail.com"
$options.port:=993
$options.user:="4d@gmail.com"
$options.password:="xxxxx"
// Criar transporter
$transporter:=IMAP New transporter($options)
// Selecionar mailbox
$boxInfo:=$transporter.selectBox("INBOX")
// Marcar todas as mensagens de INBOX como lidas
$flags:=New object
$flags["$seen"]:=True
$status:=$transporter.addFlags(IMAP all;$flags)
.append()
História
Release | Mudanças |
---|---|
18 R6 | Adicionado |
.append( mailObj : Object ; destinationBox : Text ; options : Object ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
mailObj | Object | -> | Objeto Email |
destinationBox | Text | -> | Caixa de email que vai receber o objeto Email |
options | Object | -> | Objeto que contém informações do charset |
Resultados | Object | <- | Estado da operação anexada |
Descrição
A função .append()
anexa um mailObj
à destinationBox
.
No parâmetro mailObj
, passe um objeto de e-mail. Para uma descrição abrangente das propriedades de email, consulte Objeto Email. A função .append()
suporta tags de palavras-chave no atributo keywords
do objeto de e-mail.
O parâmetro opcional destinationBox
permite que você passe o nome de uma caixa de correio na qual o mailObj
será anexado. Se omitido, é utilizada a caixa de correio actual.
No parâmetro opcional options
, você pode passar um objeto para definir o conjunto de caracteres e a codificação para partes específicas do e-mail. Propriedades disponiveis:
Propriedade | Tipo | Descrição |
---|---|---|
headerCharset | Text | Charset e codificação usados para as seguintes partes do e-mail: assunto, nomes de arquivos de anexo e atributos de nome de e-mail. Possíveis valores: Ver tabela de possíveis cartas abaixo |
bodyCharset | Text | Charset e codificação usados para o conteúdo html e corpo do e-mail. Possíveis valores: Ver tabela de possíveis cartas abaixo |
Charsets possíveis:
Parâmetros | Valor | Comentário |
---|---|---|
mail mode ISO2022JP | US-ASCII_ISO-2022-JP_UTF8_QP |
|
mail mode ISO88591 | ISO-8859-1 |
|
mail mode UTF8 | US-ASCII_UTF8_QP | headerCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & Quoted-printable (valor padrão) |
modo de correio UTF8 na base64 | US-ASCII_UTF8_B64 | headerCharset & bodyCharset: US-ASCII se possível, caso contrário UTF-8 & base64 |
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo
Para guardar um e-mail na caixa de correio Drafts:
var $settings; $status; $msg; $imap: Object
$settings:=New object("host"; "domain.com"; "user"; "xxxx"; "password"; "xxxx"; "port"; 993)
$imap:=IMAP New transporter($settings)
$msg:=New object
$msg.from:="xxxx@domain.com"
$msg.subject:="Lorem Ipsum"
$msg.textBody:="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
$msg.keywords:=New object
$msg.keywords["$seen"]:=True//flag the message as read
$msg.keywords["$draft"]:=True//flag the message as a draft
$status:=$imap.append($msg; "Drafts")
.authenticationMode
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.authenticationMode : Text
Descrição
The .authenticationMode
property contains the authentication mode used to open the session on the mail server.
Por padrão, o modo mais seguro suportado pelo servidor é usado.
Valores possíveis:
Valor | Constantes | Comentário |
---|---|---|
CRAM-MD5 | IMAP authentication CRAM MD5 | Autenticação usando o protocolo CRAM-MD5 |
LOGIN | IMAP authentication login | Autenticação usando o protocolo LOGIN |
OAUTH2 | Autenticação IMAP OAUTH2 | Autenticação usando o protocolo OAuth2 |
PLAIN | IMAP authentication plain | Autenticação usando o protocolo PLAIN |
.checkConnection()
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.checkConnection() : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultados | Object | <- | Estado da ligação do objecto transportador |
Descrição
The .checkConnection()
function checks the connection using information stored in the transporter object, recreates the connection if necessary, and returns the status. Esta função permite verificar se os valores fornecidos pelo utilizador são válidos e consistentes.
Objeto devolvido
A função envia um pedido para o servidor de correio e devolve um objecto descrevendo o estado do correio. Este objeto pode conter as seguintes propriedades:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | boolean | Verdadeiro se a verificação for bem sucedida, Falso de outra forma | |
status | number | (apenas SMTP) Código de estado devolvido pelo servidor de correio (0 no caso de um problema não relacionado com o processamento de correio) | |
statusText | text | Mensagem de estado devolvida pelo servidor de correio, ou último erro devolvido na pilha de erros 4D | |
errors | collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor de correio) | |
[ ].errCode | number | Código de erro 4D | |
[ ].message | text | Descrição do erro 4D | |
[ ].componentSignature | text | Assinatura da componente interna que devolveu o erro |
.checkConnectionDelay
História
Release | Mudanças |
---|---|
18 R4 | Adicionado |
.checkConnectionDelay : Integer
Descrição
A propriedade .checkConnectionDelay
contém o tempo máximo (em segundos) permitido antes de verificar a conexão com o servidor. Se este tempo for excedido entre duas chamadas de método, a ligação ao servidor será verificada. Por padrão, se a propriedade não tiver sido definida no objecto do servidor, o valor é 300.
Aviso: Certifique-se de que o tempo limite definido seja menor do que o tempo limite do servidor, caso contrário, o tempo limite do cliente será inútil.
.connectionTimeOut
História
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.connectionTimeOut : Integer
Descrição
The .connectionTimeOut
property contains the maximum wait time (in seconds) allowed to establish a connection to the server. By default, if the property has not been set in the server object (used to create the transporter object with SMTP New transporter
, POP3 New transporter
, or IMAP New transporter
), the value is 30.
.copy()
História
Release | Mudanças |
---|---|
18 R5 | Adicionado |
.copy( msgsIDs : Collection ; destinationBox : Text ) : Object
.copy( allMsgs : Integer ; destinationBox : Text ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
msgsIDs | Collection | -> | Coleção de identificadores únicos de mensagens (strings) |
allMsgs | Integer | -> | IMAP all : todas as mensagens na caixa de correio selecionada |
destinationBox | Text | -> | Caixa de correio para receber mensagens copiadas |
Resultados | Object | <- | Estado da operação anexada |
Descrição
A função .copy()
copia as mensagens definidas por msgsIDs ou allMsgs para destinationBox no servidor IMAP.
Pode passar:
- no parâmetro msgsIDs , uma colecção contendo as identificações únicas das mensagens específicas a copiar, ou
- no parâmetro allMsgs, a constante
IMAP all
(número inteiro) para copiar todas as mensagens na caixa de correio selecionada.
O parâmetro destinationBox permite-lhe passar um valor de texto com o nome da caixa de correio onde as cópias das mensagens serão colocadas.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo 1
Para copiar uma selecção de mensagens:
var $server;$boxInfo;$status : Object
var $mailIds : Collection
var $transporter : 4D.IMAPTransporter
$server:=New object
$server.host:="imap.gmail.com" //Obrigatório
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$transporter:=IMAP New transporter($server)
//selecionar mailbox
$boxInfo:=$transporter.selectBox("inbox")
//obtém a coleção de mensagens com IDs únicos
$mailIds:=$transporter.searchMails("subject \"4D new feature:\"")
// copia mensagens encontradas ao mailbox "documents"
$status:=$transporter.copy($mailIds;"documents")
Exemplo 2
Para copiar todas as mensagens na caixa de correio actual:
var $server;$boxInfo;$status : Object
var $transporter : 4D.IMAPTransporter
$server:=New object
$server.host:="imap.gmail.com" //Obrigatório
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$transporter:=IMAP New transporter($server)
//selecionar mailbox
$boxInfo:=$transporter.selectBox("inbox")
// copiar todas as mensagens ao "documents" mailbox
$status:=$transporter.copy(IMAP all;"documents")
.createBox()
História
Release | Mudanças |
---|---|
19 | Adicionado |
.createBox( name : Text ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
name | Text | -> | Nome da nova caixa de correio |
Resultados | Object | <- | Estado da operação de criação da caixa de correio |
Descrição
A função .createBox()
cria uma caixa de correio com o name
fornecido. Se o carácter separador hierárquico do servidor IMAP aparecer noutro lugar no nome da caixa de correio, o servidor IMAP criará os nomes dos pais necessários para criar a caixa de correio em questão.
Por outras palavras, uma tentativa de criar "Projectos/IMAP/Doc" num servidor em que "/" é o carácter separador hierárquico criará:
- Somente a caixa de correio "Doc" se "Projects" e "IMAP" já existirem.
- Caixas de correio "IMAP" e "Doc" se apenas "Projetos" já existir.
- Caixas de correio "Projects", "IMAP" e "Doc", se elas ainda não existirem.
No parâmetro name
, passe o nome da nova caixa de correio.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo
Para criar uma nova caixa de correio "Facturas":
var $pw : text
var $options; $transporter; $status : object
$options:=New object
$pw:=Request("Please enter your password:")
If(OK=1)
$options.host:="imap.gmail.com"
$options.user:="test@gmail.com"
$options.password:=$pw
$transporter:=IMAP New transporter($options)
$status:=$transporter.createBox("Invoices")
If ($status.success)
ALERT("Mailbox creation successful!")
Else
ALERT("Error: "+$status.statusText)
End if
End if
.delete()
História
Release | Mudanças |
---|---|
18 R5 | Adicionado |
.delete( msgsIDs : Collection ) : Object
.delete( allMsgs : Integer ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
msgsIDs | Collection | -> | Coleção de identificadores únicos de mensagens (strings) |
allMsgs | Integer | -> | IMAP all : todas as mensagens na caixa de correio selecionada |
Resultados | Object | <- | Estado da operação apagada |
Descrição
A função .delete()
define o sinalizador "deleted" para as mensagens definidas em msgsIDs
ou allMsgs
.
Pode passar:
- no parâmetro
msgsIDs
, uma coleção que contém as IDs exclusivas das mensagens específicas a serem excluídas, ou - no parâmetro
allMsgs
, a constanteIMAP all
(número inteiro) para excluir todas as mensagens da caixa de correio selecionada.
A execução desta função não remove realmente as mensagens. As mensagens com o sinalizador "delete" ainda podem ser encontradas pela função .searchMails(). As mensagens sinalizadas são excluídas do servidor IMAP com a função .expunge()
ou selecionando outra caixa de correio ou quando o objeto transportador (criado com IMAP New transporter) é destruído.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo 1
Para apagar uma selecção de mensagens:
var $server;$boxInfo;$status : Object
var $mailIds : Collection
var $transporter : 4D.IMAPTransporter
$server:=New object
$server.host:="imap.gmail.com" //Mandatory
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$transporter:=IMAP New transporter($server)
//select mailbox
$boxInfo:=$transporter.selectBox("Inbox")
//get collection of message unique IDs
$mailIds:=$transporter.searchMails("subject \"Reports\"")
// Delete selected messages
$status:=$transporter.delete($mailIds)
Exemplo 2
Para apagar todas as mensagens na caixa de correio actual:
var $server;$boxInfo;$status : Objecto
var $transporter : 4D.IMAPTransporter
$server:=Novo objecto
$server.host:="imap.gmail.com" //Mandatório
$server.port:=993
$server.user:="$transporter"
$server.password:="XXXXXXXX"
$transporter:=IMAP Novo transportador($server)
//seleccionar caixa de correio
$boxInfo:= .selectBox("Junk Email")
// apagar todas as mensagens na caixa de correio actual
$status:=$transporter.delete(IMAP todos)
.deleteBox()
História
Release | Mudanças |
---|---|
19 | Adicionado |
.deleteBox( name : Text ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
name | Text | -> | Nome da caixa de correio a apagar |
Resultados | Object | <- | Estado da operação de eliminação da caixa de correio |
Descrição
A função .deleteBox()
remove permanentemente a caixa de correio com o name
fornecido do servidor IMAP. A tentativa de apagar uma INBOX ou uma caixa de correio que não existe, gerará um erro.
No parâmetro name
, passe o nome da caixa de correio a ser excluída.
- A função não pode apagar uma caixa de correio que tenha caixas de correio para crianças se a caixa de correio dos pais tiver o atributo "\Noselect".
- Todas as mensagens na caixa de correio eliminadas serão também eliminadas.
- A capacidade de apagar uma caixa de correio depende do servidor de correio.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo
Para eliminar a caixa de correio filha "Nova Orion Industries" da hierarquia da caixa de correio "Bills":
var $pw; $name : text
var $options; $transporter; $status : object
$options:=New object
$pw:=Request("Please enter your password:")
If(OK=1)$options.host:="imap.gmail.com"
$options.user:="test@gmail.com"
$options.password:=$pw
$transporter:=IMAP New transporter($options)
// excluir caixa de correio
$name:="Bills"+$transporter.getDelimiter()+"Atlas Corp"
$status:=$transporter.subscribe($name)
If ($status.success)
ALERT("Mailbox subscription successful!")
Else
ALERT("Error: "+$status.statusText)
End if
End if
.expunge()
História
Release | Mudanças |
---|---|
18 R6 | Adicionado |
.expunge() : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultados | Object | <- | Estado da operação de expurgo |
Descrição
A função .expunge()
remove todas as mensagens com o sinalizador "deleted" do servidor de e-mail IMAP. O sinalizador "deleted" pode ser definido com os métodos .delete()
ou .addFlags()
.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo
var $options;$transporter;$boxInfo;$status : Object
var $ids : Collection
$options:=New object
$options.host:="imap.gmail.com"
$options.port:=993
$options.user:="4d@gmail.com"
$options.password:="xxxxx"
// Criar transporter
$transporter:=IMAP New transporter($options)
// Selecionar mailbox
$boxInfo:=$transporter.selectBox("INBOX")
// Encontrar e apagar todas as mensagens vistas no INBOX
$ids:=$transporter.searchMails("SEEN")
$status:=$transporter.delete($ids)
// Expurga todas as mensagens marcadas como apagadas
$status:=$transporter.expunge()
.getBoxInfo()
História
Release | Mudanças |
---|---|
20 | id é retornado |
18 R5 | name é opcional |
18 R4 | Adicionado |
.getBoxInfo( { name : Text }) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
name | Text | -> | Nome da nova caixa de correio |
Resultados | Object | <- | objecto boxInfo |
Descrição
A função .getBoxInfo()
retorna um objeto boxInfo
correspondente à maibox atual ou à caixa de correio name. Essa função retorna as mesmas informações que .selectBox()
sem alterar a caixa de correio atual.
No parâmetro opcional name, passe o nome da caixa de correio a ser acessada. O nome representa uma hierarquia inequívoca da esquerda para a direita com níveis separados por um carácter delimitador específico. O delimitador pode ser encontrado com a .getDelimiter()
função.
Se o nome da caixa de correio não for selecionável ou não existir, a função gera um erro e retorna null.
Objeto devolvido
O objeto boxInfo
retornado contém as seguintes propriedades:
Propriedade | Tipo | Descrição |
---|---|---|
name | text | Nome da nova caixa de correio |
mailCount | number | Número de mensagens na caixa de email |
mailRecent | number | Número de mensagens com o marcador "recente" (indicando novas mensagens) |
id | text | Parâmetros |
Exemplo
var $transporter : 4D.IMAPTransporter
$transporter:=IMAP New transporter($server)
$info:=$transporter.getBoxInfo("INBOX")
ALERT("INBOX contains "+String($info.mailRecent)+" recent emails.")
.getBoxList()
História
Release | Mudanças |
---|---|
18 R4 | Adicionado |
19 | Adicionar parâmetro isSubscribed |
.getBoxList( { parameters : Object } ) : Collection
Parâmetro | Tipo | Descrição | |
---|---|---|---|
parameters | Object | -> | Parâmetros |
Resultados | Collection | <- | Coleção de objetos da caixa de correio |
Descrição
A função .getBoxList()
retorna uma coleção de caixas de correio que descreve todas as caixas de correio disponíveis. Esta função permite gerir localmente a lista de mensagens localizadas no servidor de correio IMAP.
No parâmetro opcional parameters
, passe um objeto que contenha valores para filtrar as caixas de correio retornadas. Pode passar:
Propriedade | Tipo | Descrição |
---|---|---|
isSubscribed | Parâmetros |
Resultados
Cada objecto da coleção devolvida cont ém as seguintes propriedades:
Propriedade | Tipo | Descrição |
---|---|---|
[].name | text | Nome da nova caixa de correio |
[].selectable | boolean | Indica se os direitos de acesso permitem ou não que a caixa de correio seja selecionada:
|
[].inferior | boolean | Indica se os direitos de acesso permitem ou não a criação de uma hierarquia inferior na caixa de correio:
|
[].interesting | boolean | Indica se a caixa de correio foi marcada como "interessante" pelo servidor:
|
Se a conta não contiver quaisquer caixas de correio, é devolvida uma colecção vazia.
- Se não houver uma conexão aberta,
.getBoxList()
abrirá uma conexão.- Se a conexão não tiver sido usada desde o atraso de conexão designado (consulte
IMAP New transporter
), a função.checkConnection( )
será automaticamente chamada.
Exemplo
var $transporter : 4D.IMAPTransporter
$transporter:=IMAP New transporter($server)
$boxList:=$transporter.getBoxList()
For each($box;$boxList)
If($box.interesting)
$split:=Split string($box.name;$transporter.getDelimiter())
ALERT("New emails are available in the box: "+$split[$split.length-1])
End if
End for each
.getDelimiter()
História
Release | Mudanças |
---|---|
18 R4 | Adicionado |
.getDelimiter() : Text
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultados | Text | <- | Caractere delimitador de hierarquia |
Descrição
A função .getDelimiter()
retorna o caractere usado para delimitar os níveis de hierarquia no nome da caixa de correio.
O delimitador é um caractere a que se pode usar para:
- criar caixas de correio de nível inferior
- pesquisar hierarquias de nível mais alto ou mais baixo dentro das caixa de correio
Resultados
Carácter delimitador do nome da caixa de correio.
- Se não houver uma conexão aberta,
.getDelimiter()
abrirá uma conexão.- Se a conexão não tiver sido usada desde o atraso de conexão designado, a função
.checkConnection()
será automaticamente chamada.
Exemplo
var $transporter : 4D.IMAPTransporter
$transporter:=IMAP New transporter($server)
$boxList:=$transporter.getBoxList()
For each($box;$boxList)
If($box.interesting)
$split:=Split string($box.name;$transporter.getDelimiter())
ALERT("New emails are available in the box: "+$split[$split.length-1])
End if
End for each
.getMail()
História
Release | Mudanças |
---|---|
18 R4 | Adicionado |
.getMail( msgNumber: Integer { ; options : Object } ) : Object
.getMail( msgID: Text { ; options : Object } ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
msgNumber | Integer | -> | Número sequencial da mensagem |
msgID | Text | -> | ID única da mensagem |
options | Object | -> | Instruções de tratamento de mensagens |
Resultados | Object | <- | Objeto email |
Descrição
A função .getMail()
retorna o objeto Email
correspondente ao msgNumber ou msgID na caixa de correio designada pelo IMAP_transporter
. Essa função permite manejar localmente os conteúdos de email.
No primeiro parâmetro, pode passar qualquer um dos dois:
- msgNumber, um valor inteiro que indica o número de sequência da mensagem a ser recuperada ou
- msgID, um valor de texto que indica a ID exclusiva da mensagem a ser recuperada.
O parâmetro options opcional permite que você passe um objeto definindo instruções adicionais para manipular a mensagem. As seguintes propriedades estão disponíveis:
Propriedade | Tipo | Descrição |
---|---|---|
updateSeen | boolean | Se Verdadeiro, a mensagem é marcada como "visto" na caixa de correio. Se falso, a mensagem não é marcada como "visto". Valor padrão: True |
withBody | boolean | Pass True para devolver o corpo da mensagem. Se falso, apenas o cabeçalho da mensagem é devolvido. Valor padrão: True |
- A função gera um erro e retorna Null se msgID designar uma mensagem inexistente,
- Se nenhuma caixa de correio for selecionada com a função
.selectBox()
, será gerado um erro,- Se não houver uma conexão aberta,
.getMail()
abrirá uma conexão com a última caixa de correio especificada com.selectBox()
`.
Resultados
.getMail()
retorna um objeto [Email
] (EmailObjectClass.md#email-object) com as seguintes propriedades IMAP específicas: id, receivedAt e size.
Exemplo
Se quiser receber uma mensagem com ID = 1:
var $server : Object
var $info; $mail; $boxInfo : Variant
var $transporter : 4D.IMAPTransporter
$server:=New object
$server.host:="imap.gmail.com" //Obrigatório
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
//cria transporter
$transporter:=IMAP New transporter($server)
//seleciona mailbox
$boxInfo:=$transporter.selectBox("Inbox")
//obtém objeto Email com ID 1
$mail:=$transporter.getMail(1)
.getMails()
História
Release | Mudanças |
---|---|
18 R5 | Adicionado |
.getMails( ids : Collection { ; options : Object } ) : Object
.getMails( startMsg : Integer ; endMsg : Integer { ; options : Object } ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
ids | Collection | -> | Colecção de identificação da mensagem |
startMsg | Integer | -> | Número sequencial da primeira mensagem |
endMsg | Integer | -> | Número sequencial da última mensagem |
options | Object | -> | Instruções de tratamento de mensagens |
Resultados | Object | <- | Objeto contendo:
|
Descrição
A função .getMails()
retorna um objeto que contém uma coleção de objetos Email
.
Primeira sintaxe:
.getMails( ids { ; options } ) -> result
A primeira sintaxe permite recuperar mensagens com base nas suas identificações.
No parâmetro ids, passe uma coleção de IDs para as mensagens a serem retornadas. Você pode obter as identificações com .getMail()
.
O parâmetro opcional options permite que você defina as partes das mensagens a serem retornadas. Consulte a tabela Opções abaixo para obter uma descrição das propriedades disponíveis.
Segunda sintaxe:
.getMails( startMsg ; endMsg { ; options } ) -> result
A segunda sintaxe permite recuperar mensagens com base num intervalo sequencial. Os valores passados representam a posição das mensagens na caixa de correio.
No parâmetro startMsg, passe um valor inteiro correspondente ao número da primeira mensagem em um intervalo sequencial. Se passar um número negativo (endMsg = 0), a última mensagem da caixa de correio será utilizada como o fim da sequência.
No parâmetro endMsg, passe um valor inteiro correspondente ao número da última mensagem a ser incluída num intervalo sequencial. Se você passar um número negativo (endMsg <= 0), a última mensagem da caixa de correio será usada como o fim da sequência.
O parâmetro opcional options permite que você defina as partes das mensagens a serem retornadas.
Options
Propriedade | Tipo | Descrição |
---|---|---|
updateSeen | Parâmetros | Se Verdadeiro, as mensagens especificadas são marcadas como "vistas" na caixa de correio. Se falso, as mensagens não são marcadas como "vistas". Valor padrão: True |
withBody | Parâmetros | Pass True para devolver o corpo das mensagens especificadas. Se falso, apenas os cabeçalhos das mensagens são devolvidos. Valor padrão: True |
- Se nenhuma caixa de correio for selecionada com o comando
.selectBox()
, será gerado um erro.- Se não houver uma conexão aberta,
.getMails()
abrirá uma conexão com a última caixa de correio especificada com.selectBox()
.
Resultados
.getMails()
retorna um objeto que contém as seguintes coleções:
Propriedade | Tipo | Descrição |
---|---|---|
lista | Collection | Coleção de objetos Email . Se não forem encontrados objetos e-mail, uma coleção vazia é devolvida. |
notFound | Collection | Coleção de:
|
Exemplo
Se quiser recuperar os 20 e-mails mais recentes sem alterar o seu estatuto de "visto":
var $server,$boxInfo,$result : Object
var $transporter : 4D.IMAPTransporter
$server:=New object
$server.host:="imap.gmail.com" //Mandatório
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
//criar transportador
$transporter:=IMAP New transporter($server)
//selecionar caixa de correio
$boxInfo:=$transporter.selectBox("INBOX")
If($boxInfo.mailCount>0)
// recupera os cabeçalhos das últimas 20 mensagens sem marcá-las como lidas
$result:=$transporter.getMails($boxInfo.mailCount-20;$boxInfo.mailCount;\
New object("withBody";False;"updateSeen";False))
For each($mail;$result.list)
// ...
End for each
End if
.getMIMEAsBlob()
História
Release | Mudanças |
---|---|
18 R4 | Adicionado |
.getMIMEAsBlob( msgNumber : Integer { ; updateSeen : Boolean } ) : Blob
.getMIMEAsBlob( msgID : Text { ; updateSeen : Boolean } ) : Blob
Parâmetro | Tipo | Descrição | |
---|---|---|---|
msgNumber | Integer | -> | Número sequencial da mensagem |
msgID | Text | -> | ID única da mensagem |
updateSeen | Parâmetros | -> | Se Verdadeiro, a mensagem é marcada "visto" na caixa de correio. Se Falso, a mensagem é deixada intocada. |
Resultados | BLOB | <- | Blob da string MIME retornado do servidor mail |
Descrição
A função .getMIMEAsBlob()
retorna um BLOB contendo o conteúdo MIME da mensagem correspondente ao msgNumber ou msgID na caixa de correio designada pelo IMAP_transporter
.
No primeiro parâmetro, pode passar qualquer um dos dois:
- msgNumber, um valor inteiro que indica o número de sequência da mensagem a ser recuperada ou
- msgID, um valor de texto que indica a ID exclusiva da mensagem a ser recuperada.
O parâmetro opcional updateSeen permite que você especifique se a mensagem está marcada como "vista" na caixa de correio. Pode passar:
- True - para marcar a mensagem como "vista" (indicando que a mensagem foi lida)
- False - para deixar o status "visto" da mensagem inalterado
- A função retorna um BLOB vazio se msgNumber ou msgID* designar uma mensagem inexistente,
- Se nenhuma caixa de correio for selecionada com o comando
.selectBox()
, será gerado um erro,- Se não houver uma conexão aberta,
.getMIMEAsBlob()
abrirá uma conexão com a última caixa de correio especificada com.selectBox()
.
Resultados
.getMIMEAsBlob()
retorna um BLOB
que pode ser arquivado em um banco de dados ou convertido a um objeto Email
com o comando MAIL Convert from MIME
.
Exemplo
var $server : Objecto
var $boxInfo : Variante
var $blob : Blob
var $transporter : 4D.IMAPTransporter
$server:=Novo objecto
$server.host:="imap.gmail.com"
$server.port:=993
$server.user:=" "
$server.password:="XXXXXXXX"
//criar transportador
$transporter:=IMAP Novo transportador($server)
//seleccionar caixa de correio
$boxInfo:=$transporter.selectBox("Inbox")
//get BLOB
$blob:=$transporter.getMIMEAsBlob(1)
.host
História
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.host : Text
Descrição
The .host
property contains the name or the IP address of the host server. Utilizado para transacções postais (SMTP, POP3, IMAP).
.logFile
História
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.logFile : Text
Descrição
The .logFile
property contains the path of the extended log file defined (if any) for the mail connection. Pode ser relativo (à pasta atual de Logs) ou absoluto.
Unlike regular log files (enabled via the SET DATABASE PARAMETER
command), extended log files store MIME contents of all sent mails and do not have any size limit. Para mais informações sobre arquivos de registo estendidos, consultar:
- Conexões SMSTP - 4DSMTPLog.txt
- Conexões POP3 - 4DPOP3Log.txt
- Conexões IMAP - 4DIMAPLog.txt
.move()
História
Release | Mudanças |
---|---|
18 R5 | Adicionado |
.move( msgsIDs : Collection ; destinationBox : Text ) : Object
.move( allMsgs : Integer ; destinationBox : Text ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
msgsIDs | Collection | -> | Coleção de identificadores únicos de mensagens (strings) |
allMsgs | Integer | -> | IMAP all : todas as mensagens na caixa de correio selecionada |
destinationBox | Text | -> | Caixa de correio para receber mensagens movimentadas |
Resultados | Object | <- | Estado da operação de mudança |
Descrição
A função .move()
move as mensagens definidas por msgsIDs ou allMsgs para destinationBox no servidor IMAP.
Pode passar:
- no parâmetro msgsIDs, uma coleção contendo as IDs únicas das mensagens específicas a mover, ou
- no parâmetro allMsgs, a constante
IMAP all
(número inteiro) para mover todas as mensagens na caixa de correio selecionada.
O parâmetro destinationBox permite-lhe passar um valor de texto com o nome da caixa de correio onde as cópias das mensagens serão colocadas.
Esta função só é suportada por servidores IMAP em conformidade com o RFC 8474.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo 1
Para mover uma selecção de mensagens:
var $server;$boxInfo;$status : Object
var $mailIds : Collection
var $transporter : 4D.IMAPTransporter
$server:=New object
$server.host:="imap.gmail.com" //Obrigatório
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$transporter:=IMAP New transporter($server)
//selecionar mailbox
$boxInfo:=$transporter.selectBox("Inbox")
//obter coleção das IDs únicas de mensagem
$mailIds:=$transporter.searchMails("subject \"4D new feature:\"")
// mover mensagens encontradas da caixa de correio actual para a caixa de correio "documents"
$status:=$transporter.move($mailIds; "documentos")
Exemplo 2
Para mover todas as mensagens na mailbox atual:
var $server;$boxInfo;$status : Object
var $transporter : 4D.IMAPTransporter
$server:=New object
$server.host:="imap.gmail.com" //Mandatório
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$transporter:=IMAP New transporter($server)
//seleccionar caixa de correio
$boxInfo:=$transporter.selectBox("inbox")
// mover todas as mensagens da caixa de correio actual para a caixa de correio "documents"
$status:=$transporter.move(IMAP all;"documents")
.numToID()
História
Release | Mudanças |
---|---|
18 R5 | Adicionado |
.numToID( startMsg : Integer ; endMsg : Integer ) : Collection
Parâmetro | Tipo | Descrição | |
---|---|---|---|
startMsg | Integer | -> | Número sequencial da primeira mensagem |
endMsg | Integer | -> | Número sequencial da última mensagem |
Resultados | Collection | <- | Colecção de identificações únicas |
Descrição
A função .numToID()
converte os números de sequência em IDs exclusivos do IMAP para as mensagens no intervalo sequencial designado por startMsg e endMsg na caixa de correio selecionada no momento.
No parâmetro startMsg , passe um valor inteiro correspondente ao número da primeira mensagem num intervalo sequencial. Se você passar um número negativo (startMsg <= 0), a primeira mensagem da caixa de correio será usada como o início da sequência.
No parâmetro endMsg, passe um valor inteiro correspondente ao número da última mensagem a ser incluída num intervalo sequencial. Se você passar um número negativo (endMsg <= 0), a última mensagem da caixa de correio será usada como o fim da sequência.
Resultados
A função devolve uma colecção de cordas (identificações únicas).
Exemplo
var $transporter : 4D.IMAPTransporter
var $server;$boxInfo;$status : Object
var $mailIds : Collection
$server:=New object
$server.host:="imap.gmail.com" //Mandatório
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$transporter:=IMAP New transporter($server)
//select mailbox
$boxInfo:=$transporter.selectBox("inbox")
//obter IDs para 5 últimas mensagens recebidas
$mailIds:=$transporter.numToID(($boxInfo.mailCount-5);$boxInfo.mailCount)
//excluir as mensagens da caixa de correio actual
$status:=$transporter.delete($mailIds)
.removeFlags()
História
Release | Mudanças |
---|---|
20 | Suporta palavras-chave personalizadas |
18 R6 | Adicionado |
.removeFlags( msgIDs : Collection ; keywords : Object ) : Object
.removeFlags( msgIDs : Text ; keywords : Object ) : Object
.removeFlags( msgIDs : Longint ; keywords : Object ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
msgIDs | Collection | -> | Coleção de strings: IDs únicos de mensagens (texto) Texto: ID único de uma mensagem Longint (todos IMAP): Todas as mensagens na caixa de correio seleccionada |
keywords | Object | -> | Flags de palavras-chave a remover |
Resultados | Object | <- | Estado da operação removeFlags |
Descrição
A função .removeFlags()
remove os sinalizadores dos msgIDs
para as keywords
especificadas.
No parâmetro msgIDs
, você pode passar qualquer um deles:
- uma colecção contendo as identificações únicas de mensagens específicas ou
- o ID único (texto) de uma mensagem ou
- a seguinte constante (longint) para todas as mensagens na caixa de correio selecionada:
Parâmetros | Valor | Comentário |
---|---|---|
IMAP all | 1 | Seleccione todas as mensagens na caixa de correio seleccionada |
O parâmetro keywords
permite que você defina os sinalizadores a serem removidos dos msgIDs
. Pode passar qualquer uma das seguintes palavras-chave:
Parâmetro | Tipo | Descrição |
---|---|---|
$draft | Parâmetros | True para remover o flag "draft" na mensagem |
$seen | Parâmetros | True para remover a flag "seen" na mensagem |
$flagged | Parâmetros | True para remover a flag "flagged" na mensagem |
$answered | Parâmetros | True para remover a flag "answered" na mensagem |
$deleted | Parâmetros | True para remover a flag "deleted" na mensagem |
<custom flag> | Parâmetros | True para remover a flag personalizada na mensagem |
Consulte .addFlags() para obter mais informações sobre sinalizadores personalizados.
- Para que uma palavra-chave seja tida em conta, tem de ser true.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo
var $options;$transporter;$boxInfo;$status : Object
$options:=New object
$options.host:="imap.gmail.com"
$options.port:=993
$options.user:="4d@gmail.com"
$options.password:="xxxxx"
// Criar transporter
$transporter:=IMAP New transporter($options)
// Selecionar mailbox
$boxInfo:=$transporter.selectBox("INBOX")
// Marcar todas as mensagens de INBOX como invisíveis
$flags:=New object
$flags["$seen"]:=True
$status:=$transporter.removeFlags(IMAP all;$flags)
.renameBox()
História
Release | Mudanças |
---|---|
19 | Adicionado |
.renameBox( currentName : Text ; newName : Text ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
currentName | Text | -> | Nome da caixa de correio actual |
newName | Text | -> | Nome da nova caixa de correio |
Resultados | Object | <- | Estado da operação de renomeamento |
Descrição
A função .renameBox()
altera o nome de uma caixa de correio no servidor IMAP. Tentar mudar o nome de uma caixa de correio de um nome de caixa de correio que não existe ou para um nome de caixa de correio que já existe irá gerar um erro.
No parâmetro currentName
, passe o nome da caixa de correio a ser renomeada.
Passe o novo nome da caixa de correio no parâmetro newName
.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo
Para renomear a sua caixa de correio "Invoices" para "Bills":
var $pw : text
var $options; $transporter; $status : object
$options:=New object
$pw:=Request("Please enter your password:")
If(OK=1) $options.host:="imap.gmail.com"
$options.user:="test@gmail.com"
$options.password:=$pw
$transporter:=IMAP New transporter($options)
// rename mailbox
$status:=$transporter.renameBox("Invoices"; "Bills")
If ($status.success)
ALERT("Mailbox renaming successful!")
Else
ALERT("Error: "+$status.statusText)
End if
End if
.port
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.port : Integer
Descrição
The .port
property contains the port number used for mail transactions. By default, if the port property has not been set in the server object (used to create the transporter object with SMTP New transporter
, POP3 New transporter
, IMAP New transporter
), the port used is:
- SMTP - 587
- POP3 - 995
- IMAP - 993
.searchMails()
História
Release | Mudanças |
---|---|
18 R5 | Adicionado |
.searchMails( searchCriteria : Text ) : Collection
Parâmetro | Tipo | Descrição | |
---|---|---|---|
searchCriteria | Text | -> | Critérios de pesquisa |
Resultados | Collection | <- | Coleção de números de mensagens |
Descrição
Essa função é baseada na especificação do [protocolo IMAP] (https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol).
A função .searchMails()
procura por mensagens que correspondam aos searchCriteria fornecidos na caixa de correio atual. O searchCriteria consiste em uma ou mais chaves de pesquisa.
searchCriteria é um parâmetro de texto que lista uma ou mais chaves de pesquisa (consulte Authorized search-keys abaixo) associadas ou não a valores a serem procurados. Uma chave de pesquisa pode ser um único ou vários itens. Por exemplo:
SearchKey1 = FLAGGED SearchKey2 = NOT FLAGGED SearchKey3 = FLAGGED DRAFT
A correspondência não é normalmente sensível a maiúsculas e minúsculas
- Se o searchCriteria for uma cadeia de caracteres nula, a pesquisa será equivalente a um "seleccionar tudo".
- Se o searchCriteria incluir várias chaves de pesquisa, o resultado será a interseção (função AND) de todas as mensagens que correspondem a essas chaves.
searchCriteria = FLAGGED FROM "SMITH"
... devolve todas as mensagens com o conjunto de bandeiras sinalizadas E enviadas por Smith.
- Você pode usar os operadores OR ou NOT da seguinte forma:
searchCriteria = OR SEEN FLAGGED
... devolve todas as mensagens com o conjunto de bandeiras visíveis OU o conjunto de bandeiras sinalizadoras
searchCriteria = NOT SEEN
... devolve todas as mensagens com a bandeira não estabelecida.
searchCriteria = HEADER CONTENT-TYPE "MIXED" NOT HEADER CONTENT-TYPE "TEXT"...
... devolve mensagem cujo cabeçalho de tipo de conteúdo contém "Mixed" e não contém "Text".
searchCriteria = HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE "MIXED"
... retorna mensagem cujo cabeçalho do tipo de conteúdo contém " e " e cujo cabeçalho do tipo de conteúdo não contém " o " e cujo cabeçalho do tipo de conteúdo não é " Mixed ".
No que diz respeito aos dois últimos exemplos, note que o resultado da pesquisa é diferente quando se remove os parênteses da primeira lista de chaves de pesquisa.
- A searchCriteria pode incluir a especificação opcional [CHARSET]. Esta consiste na palavra "CHARSET" seguida de uma palavra registada [CHARSET] (US ASCII, ISO-8859). Indica o conjunto de caracteres da string searchCriteria. Portanto, você deve converter a cadeia de caracteres searchCriteria no conjunto de caracteres especificado se usar a especificação [CHARSET] (consulte os comandos
CONVERT FROM TEXT
ouConvert to text
). Como padrão, os códigos 4D em Quotable Printable the searchCriteria string se conter caracteres estendidos
searchCriteria = CHARSET "ISO-8859" BODY "Help"
... significa que o critério de pesquisa utiliza o iso-8859 charset e o servidor terá de converter o critério de pesquisa antes de efectuar a pesquisa, se necessário.
Tipos de valores de pesquisa
As chaves de pesquisa podem solicitar o valor a pesquisar:
-
Chaves de pesquisa com um valor de data: a data é uma cadeia de caracteres que deve ser formatada da seguinte forma: date-day+"-"+date-month+"-"+date-year em que date-day indica o número do dia do mês (máximo de 2 caracteres), date-month indica o nome do mês (jan/fev/mar/abr/mai/jun/jul/ago/set/out/dez) e date-year indica o ano (4 caracteres). Exemplo:
searchCriteria = SENTBEFORE 1-Feb-2020
(uma data geralmente não precisa ser colocada entre aspas, pois não contém nenhum caractere especial) -
Search-keys with a string value: a string pode conter qualquer caractere e deve estar entre aspas. Se a string não conter quaisquer caracteres especiais, como o carácter espacial, por exemplo, não precisa de ser citada. A citação de tais strings assegurará que o seu valor de strings será interpretado correctamente. Exemplo:
searchCriteria = FROM "SMITH"
Para todas as chaves de pesquisa que usam cadeias de caracteres, uma mensagem corresponde à chave se a cadeia de caracteres for uma subcadeia do campo. A correspondência não é sensível a maiúsculas e minúsculas. -
**Pesquisa-chaves com um valor de nome de campo: o nome de campo é o nome de um campo de cabeçalho. Exemplo:
searchCriteria = HEADER CONTENT-TYPE "MIXED"
-
Search-keys com um valor de sinalizador: o sinalizador pode aceitar uma ou várias palavras-chave (incluindo sinalizadores padrão), separadas por espaços. Exemplo:
searchCriteria = KEYWORD \Flagged \Draft
-
Pesquisa-chaves com um valor de conjunto de mensagens: identifica um conjunto de mensagens. Para números de sequência de mensagens, estes são números consecutivos de 1 até ao número total de mensagens na caixa de correio. Uma vírgula delimita números individuais; uma vírgula delimita entre dois números, inclusive. Exemplos:
2,4:7,9,12:*
é2,4,5,6,7,9,12,13,14,15
para uma caixa postal com 15 mensagens.searchCriteria = 1:5 ANSWERED
pesquisa na seleção de mensagens do número de sequência de mensagens 1 a 5 para mensagens que têm o sinalizador \Respondido definido.searchCriteria= 2,4 ANSWERED
pesquisa na seleção de mensagens (números de mensagem 2 e 4) as mensagens que têm o sinalizador \Respondido definido.
Chaves de pesquisa autorizadas
ALL: Todas as mensagens na caixa de correio.
ANSWERED: mensagens com o indicador \Answered ativo.
UNANSWERED: mensagens que não têm o sinalizador indicador \Answered definido.
DELETED: mensagens com o sinalizador \Deleted ativado.
UNDELETED: Mensagens que não possuem o indicador \Deleted ativado.
DRAFT: mensagens com o indicador \Draft ativo.
UNDRAFT: mensagens que não têm o sinalizador \Draft ativado.
FLAGGED: mensagens com o indicador \Flagged ativo.
UNFLAGGED: mensagens que não têm o sinalizador \Flagged ativado.
RECENT: mensagens que possuem o indicador \Recent ativado.
OLD: mensagens que não possuem o indicador \Recent definido.
SEEN: mensagens que têm o sinalizador \Seen ativo.
UNSEEN: Mensagens que não possuem o indicador \Seen definido.
NEW: mensagens que tenham o indicador \Recent definido, mas não o indicador\Seen. Isso é funcionalmente equivalente a "(RECENT UNSEEN)".
KEYWORD flag: Mensagens com o conjunto de palavras-chave especificado.
UNKEYWORD flag: mensagens que não têm a palavra-chave especificada.
BEFORE date: Mensagens cuja data interna é anterior à data especificada.
ON date: Mensagens cuja data interna está dentro da data especificada.
SINCE date: Mensagens cuja data interna está dentro da data especificada ou é posterior a ela.
SENTBEFORE data: Mensagens cujo cabeçalho de data é anterior à data especificada.
SENTON date: Mensagens cujo cabeçalho de Data está dentro da data especificada.
SENTSINCE data: Mensagens cujo cabeçalho de data está dentro ou posterior à data especificada.
TO string: Mensagens que contêm a string especificada no cabeçalho TO.
FROM string: mensagens que contêm a string especificada no cabeçalho FROM.
CC string: Mensagens que contenham a seqüência de caracteres especificada no cabeçalho CC.
BCC string: mensagens que contêm a string especificada no cabeçalho BCC.
SUBJECT string: Mensagens que contêm a string especificada no cabeçalho Subject.
BODY string: Mensagens que contêm a string especificada no corpo da mensagem.
TEXT string: Mensagens que contêm a string especificada no cabeçalho ou no corpo da mensagem.
HEADER nome-do-campo string: Mensagens que possuem um cabeçalho com o nome do campo especificado e que contêm a string especificada no corpo-campo.
UID message-UID: Mensagens com identificadores exclusivos correspondentes ao identificador exclusivo especificado.
LARGER n: mensagens com tamanho maior do que o número de bytes especificado.
SMALLER n: mensagens com tamanho menor do que o número de bytes especificado.
NOT chave de pesquisa: Mensagens que não correspondem à chave de pesquisa especificada.
OR search-key1 search-key2: Mensagens que correspondem a uma das chaves de pesquisa.
.selectBox()
História
Release | Mudanças |
---|---|
20 | id, flags, permanentFlags são retornados |
18 R4 | Adicionado |
.selectBox( name : Text { ; state : Integer } ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
name | Text | -> | Nome da nova caixa de correio |
state | Integer | -> | Estado de acesso à caixa de correio |
Resultados | Object | <- | objecto boxInfo |
Descrição
A função .selectBox()
seleciona a caixa de correio name como a caixa de correio atual. Essa função permite que recupere informação sobre o mailbox.
Para obter as informações de uma caixa de correio sem alterar a caixa de correio actual, utilize
.getBoxInfo()
.
No parâmetro name, passar o nome da caixa de correio para aceder. O nome representa uma hierarquia inequívoca da esquerda para a direita com níveis separados por um carácter delimitador específico. O delimitador pode ser encontrado com a .getDelimiter()
função.
O parâmetro opcional state define o tipo de acesso à caixa de correio. Os valores possíveis são:
Parâmetros | Valor | Comentário |
---|---|---|
IMAP read only state | 1 | A caixa de correio seleccionada é acedida com privilégios apenas de leitura. As mensagens com uma flag "recente" (indicando novas mensagens) permanecem inalteradas. |
IMAP read write state | 0 | A caixa de correio seleccionada é acedida com privilégios de leitura e escrita. As mensagens são consideradas "vistas" e perdem o marcador "recente" (indicando novas mensagens). (Valor padrão) |
- A função gera um erro e retorna Null se name designar uma caixa de correio inexistente.
- Se não houver uma conexão aberta,
.selectBox()
abrirá uma conexão.- Se a conexão não tiver sido usada desde o atraso de conexão designado (veja
IMAP New transporter
), a função.checkConnection()
será automaticamente chamada.
Objeto devolvido
O objeto boxInfo
retornado contém as seguintes propriedades:
Propriedade | Tipo | Descrição |
---|---|---|
name | Text | Nome da nova caixa de correio |
mailCount | number | Número de mensagens na caixa de email |
mailRecent | number | Número de mensagens com a flag "recent" |
id | text | Parâmetros |
flags | text | Lista de flags actualmente utilizadas para a caixa de correio, separadas por espaços |
permanentFlags | text | Lista de marcadores que o cliente pode mudar permanentemente (excepto a \Recent, que é gerida pelo servidor IMAP), separadas por espaços |
Se a cadeia de caracteres permanentFlags
incluir o sinalizador especial *, isso significa que o servidor oferece suporte a [sinalizadores personalizados] (#addflags).
Exemplo
var $server; $boxinfo : Object
$server:=New object
$server.host:="imap.gmail.com" //Obrigatório
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
var $transporter : 4D.IMAPTransporter
$transporter:=IMAP New transporter($server)
$boxInfo:=$transporter.selectBox("INBOX")
.subscribe()
História
Release | Mudanças |
---|---|
19 | Adicionado |
.subscribe( name : Text ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
name | Text | -> | Nome da nova caixa de correio |
Resultados | Object | <- | Estado da operação de subscrição |
Descrição
A função .subscribe()
permite adicionar ou remover a caixa de correio especificada do conjunto de caixas de correio "inscritas" do servidor IMAP. Como tal, pode optar por restringir uma grande lista de caixas de correio disponíveis, subscrevendo as que normalmente deseja ver.
No parâmetro nome
, passe o nome da caixa de correio para adicionar (inscrever) para suas caixas de correio "inscritas".
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo
Para subscrever a caixa de correio "Atlas Corp" na hierarquia "Bills":
var $pw; $name : text
var $options; $transporter; $status : object
$options:=New object
$pw:=Request("Please enter your password:")
If(OK=1) $options.host:="imap.gmail.com"
$options.user:="test@gmail.com"
$options.password:=$pw
$transporter:=IMAP New transporter($options)
$name:="Bills"+$transporter.getDelimiter()+"Atlas Corp"
$status:=$transporter.subscribe($name)
If ($status.success)
ALERT("Mailbox subscription successful!")
Else
ALERT("Error: "+$status.statusText)
End if
End if
.unsubscribe()
História
Release | Mudanças |
---|---|
19 | Adicionado |
.unsubscribe( name : Text ) : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
name | Text | -> | Nome da nova caixa de correio |
Resultados | Object | <- | Estado da operação unsubscribe |
Descrição
A função .unsubscribe()
remove uma caixa de correio de um conjunto de caixas de correio inscritas. Isto permite reduzir o número de caixas de correio que normalmente se vêem.
No parâmetro name
, passe o nome da caixa de correio para remover (cancelar a subscrição) das suas caixas de correio activas.
Objeto devolvido
A função devolve um objecto que descreve o estado IMAP:
Propriedade | Tipo | Descrição | |
---|---|---|---|
success | Parâmetros | Verdadeiro se a operação for bem sucedida, Falso caso contrário | |
statusText | Text | Mensagem de estado devolvida pelo servidor IMAP, ou último erro devolvido na pilha de erros 4D | |
errors | Collection | pilha de erros 4D (não devolvida se for recebida uma resposta do servidor IMAP) | |
[].errcode | Number | Código de erro 4D | |
[].message | Text | Descrição do erro 4D | |
[].componentSignature | Text | Assinatura da componente interna que devolveu o erro |
Exemplo
Para cancelar a subscrição da caixa de correio "Atlas Corp" na hierarquia "Bills":
var $pw; $name : text
var $options; $transporter; $status : object
$options:=New object
$pw:=Request("Please enter your password:")
If(OK=1) $options.host:="imap.gmail.com"
$options.user:="test@gmail.com"
$options.password:=$pw
$transporter:=IMAP New transporter($options)
$name:="Bills"+$transporter.getDelimiter()+"Atlas Corp"
$status:=$transporter.unsubscribe($name)
If ($status.success)
ALERT("Mailbox unsubscription successful!")
Else
ALERT("Error: "+$status.statusText)
End if
End if
.user
História
Release | Mudanças |
---|---|
17 R4 | Adicionado |
.user : Text
Descrição
The .user
property contains the user name used for authentication on the mail server.