Skip to main content
Version: v19 R8 BETA

POP3Transporter

O POP3Transporter permite recuperar mensagens de um servidor de email POP3.

Objeto POP3 transporter

Os objetos POP3 Transporter são instanciados com o comando POP3 New transporter. Eles oferecem as propriedades abaixo e funções:

.acceptUnsecureConnection : Boolean    Verdadeiro se 4D for permitido estabelecer uma ligação não encriptada
.authenticationMode : Text    o modo de autenticação utilizado para abrir a sessão no servidor de correio
.checkConnection() : Object     verifica a ligação utilizando a informação armazenada no objeto de transporte
.connectionTimeOut : Integer    o tempo máximo de espera (em segundos) permitido para estabelecer uma conexão com o servidor
.delete( msgNumber : Integer )    assinala o e-mail msgNumber para eliminação do servidor POP3
.getBoxInfo() : Object    devolve uma boxInfo objecto correspondente à caixa de correio designada pelo transportador POP3
.getMail( msgNumber : Integer ) : Object    devolve o Email objeto correspondente ao msgNumber na caixa de correio designada pelo transportador POP3
.getMailInfo( msgNumber : Integer ) : Object    devolve o Email objeto correspondente ao msgNumber na caixa de correio designada pelo transportador POP3
.getMailInfoList() : Collection    devolve uma coleção de mailInfo objectos que descrevem todas as mensagens na caixa de correio designada pelo transportador POP3
.getMIMEAsBlob( msgNumber : Integer ) : Blob    devolve um BLOB contendo o conteúdo MIME para a mensagem correspondente ao msgNumber na caixa de correio designada pelo POP3_transporter
.host : Text    o nome ou o endereço IP do servidor anfitrião
.logFile : Text    o caminho do arquivo de registo alargado definido (se existir) para a ligação de correio
.port : Integer     o número do porto utilizado para as transações postais
.undeleteAll()    remove todas as flags de deletar colocadas nos e-mails no POP3_transporter
.user : Text     o nome de usuário utilizado para autenticação no servidor de correio

POP3 New transporter

Histórico
VersãoMudanças
v18 R2Adicionado

POP3 New transporter( server : Object ) : 4D.POP3Transporter

ParâmetrosTipoDescrição
serverobject->Informação de servidor de correio
Resultados4D.POP3Transporter<-POP3 transporter object

Descrição

Comando POP3 New transporter configura uma nova ligação POP3de acordo com o parametro server e retorna um novo objetoPOP3 transporter. O objeto transporter retornado vai geralmente ser usado para receber emails.

No parâmetro server, passe um objeto contendo as propriedades abaixo:

serverValor padrão (se omitido)
.acceptUnsecureConnection : Boolean    Verdadeiro se 4D for permitido estabelecer uma ligação não encriptadaFalse
.accessTokenOAuth2: Text
.accessTokenOAuth2: Object
Text string or token object representing OAuth2 authorization credentials. Só é usado com OAUTH2 authenticationMode. Se accessTokenOAuth2 for usado mas authenticationMode for omitido, o protocolo OAuth 2 é usado (se permitido pelo servidor). Text string or token object representing OAuth2 authorization credentials.
nenhum
.authenticationMode : Text    o modo de autenticação utilizado para abrir a sessão no servidor de correioo modo de autenticação mais seguro disponível no servidor é usado
.connectionTimeOut : Integer    o tempo máximo de espera (em segundos) permitido para estabelecer uma conexão com o servidor30
.host : Text    o nome ou o endereço IP do servidor anfitriãoobrigatório
.logFile : Text    o caminho do arquivo de registo alargado definido (se existir) para a ligação de correionenhum
.password : Texto
Palavra-passe de utilizador para autenticação no servidor. Text string or token object representing OAuth2 authorization credentials.
nenhum
.port : Integer     o número do porto utilizado para as transações postais995
.user : Text     o nome de usuário utilizado para autenticação no servidor de correionenhum

Resultados

A função retorna um objeto POP3 transporter. Todas as propriedades retornadas sãoapenas leitura.

A conexão POP3 é fechada automaticamente quando o objeto transportador for destruído.

Exemplo

 var $server : Object
$server:=New object
$server.host:="pop.gmail.com" //Obrigatório
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$server.logFile:="LogTest.txt" //histórico para salvar na pasta Logs

var $transporter : 4D.POP3Transporter
$transporter:=POP3 New transporter($server)

$status:=$transporter.checkConnection()
If(Not($status.success))
ALERT("An error occurred receiving the mail: "+$status.statusText)
End if

4D.POP3Transporter.new()

4D.POP3Transporter.new( server : Object ) : 4D.POP3Transporter

ParâmetrosTipoDescrição
serverObjeto->Informação de servidor de correio
Resultados4D.POP3Transporter<-POP3 transporter object

Descrição

A função 4D.POP3Transporter.new() cria e devolve um novo objecto do tipo 4D.POP3Transporter. Summary -->retorna uma BLOB contendo os conteúdos MIME para a mensagem correspondente a msgNumber na mailbox determinada pelo POP3_transporter.

.acceptUnsecureConnection

Histórico
VersãoMudanças
v17 R4Adicionado

.acceptUnsecureConnection : Boolean

Descrição

A propriedade .acceptUnsecureConnection contém Verdadeiro se 4D for permitido estabelecer uma ligação não encriptada quando a ligação encriptada não é possível.

Contém False se conexões cifradas não forem permitidas, neste caso um erro é retornado quando a conexão criptografada não for possível.

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.

.authenticationMode

Histórico
VersãoMudanças
v17 R4Adicionado

.authenticationMode : Text

Descrição

A propriedade .authenticationMode contém o modo de autenticação utilizado para abrir a sessão no servidor de correio.

Por padrão, o modo mais seguro suportado pelo servidor é usado.

Valores possíveis:

ValueConstantesComentário
APOPAutenticação POP3 APOPAutenticação usando o protocolo APOP (POP3 apenas)
CRAM-MD5Autenticação POP3 CRAM-MD5Autenticação usando o protocolo CRAM-MD5
LOGINPOP3 authentication loginAutenticação usando o protocolo LOGIN
OAUTH2POP3 authentication OAUTH2Autenticação usando o protocolo OAuth2
PLAINAutenticação POP3 simplesAutenticação usando o protocolo PLAIN

.checkConnection()

Histórico
VersãoMudanças
v17 R4Adicionado

.checkConnection() : Object

ParâmetrosTipoDescrição
ResultadosObjeto<-Estado da ligação do objecto transportador

|

Descrição

A função .checkConnection() verifica a ligação utilizando a informação armazenada no objeto de transporte, recria a ligação, se necessário, e devolve o estado. 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. This object can contain the following properties:

PropriedadeTipoDescrição
successbooleanVerdadeiro se a verificação for bem sucedida, Falso de outra forma
statusnumber(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)
statusTexttextMensagem de estado devolvida pelo servidor de correio, ou último erro devolvido na pilha de erros 4D
errorscollectionpilha de erros 4D (não devolvida se for recebida uma resposta do servidor de correio)
[ ].errCodenumber4D error code
[ ].messagetextDescription of the 4D error
[ ].componentSignaturetextSignature of the internal component which returned the error

Exemplo

 var $pw :  Text
var $options : Object
$options:=New object

$pw:=Request("Please enter your password:")
if(OK=1)
$options.host:="pop3.gmail.com"

$options.user:="test@gmail.com"
$options.password:=$pw

$transporter:=POP3 New transporter($options)

$status:=$transporter.checkConnection()
If($status.success)
ALERT("POP3 connection check successful!")
Else
ALERT("Error: "+$status.statusText)
End if
End if
Else
ALERT("Error: "+$status.statusText)
End if
End if

.connectionTimeOut

Histórico
VersãoMudanças
v17 R5Adicionado

.connectionTimeOut : Integer

Descrição

A propriedade .connectionTimeOut contém o tempo máximo de espera (em segundos) permitido para estabelecer uma conexão com o servidor. Por padrão, se a propriedade não tiver sido definida no objecto servidor (utilizado para criar o objecto transportador com SMTP Novo transportador, POP3 Novo transportador, ou IMAP Novo transportador), o valor é 30.

.delete()

Histórico
VersãoMudanças
v18 R2Adicionado

.delete( msgNumber : Integer )

ParâmetrosTipoDescrição
msgNumberInteger->Número da mensagem que vai ser apagada
Descrição

A função .delete( ) assinala o e-mail msgNumber para eliminação do servidor POP3.

No parâmetro msgNumber, passe o número do email a apagar. O número é retornado na propriedade número pelo método .getMailInfoList().

Executar esse método não remove de verdade qualquer email. O email marcado será apagado do servidor POP3 apenas quando o objetoPOP3_transporter (criado com POP3 New transporter) for destruído. A marcação pode ser removida com o método .undeleteAll().

Se a sessão atual terminar de forma inesperada e perder a conexão (por exemplo timeout, falha de rede, etc), uma mensagem de erro é gerada e mensagens marcadas para serem apagadas continuam no servidor POP3.

Exemplo
 $mailInfoList:=$POP3_transporter.getMailInfoList()
For each($mailInfo;$mailInfoList)
// Marca seu email a "to be deleted at the end of the session"
$POP3_transporter.delete($mailInfo.number)
End for each
// Força que o fechamento da sessão apague os emails marcados para serem eliminados
CONFIRM("Selected messages will be deleted.";"Delete";"Undo")
If(OK=1) //eliminação confirmada
$POP3_transporter:=Null
Else
$POP3_transporter.undeleteAll() //remove marcas de eliiminação
End if

.getBoxInfo()

Histórico
VersãoMudanças
v18 R2Adicionado

.getBoxInfo() : Object

ParâmetrosTipoDescrição
ResultadosObjeto<-boxInfo object
Descrição

A função .getBoxInfo() devolve uma boxInfo objecto correspondente à caixa de correio designada pelo transportador POP3. Essa função permite que recupere informação sobre o mailbox.

O objeto boxInfo retornado contém as funcionalidades abaixo:

PropriedadeTipoDescrição
mailCountNúmeroNúmero de mensagens na caixa de email
sizeNúmeroTamanho da mensagem em bytes
Exemplo
 var $server; $boxinfo : Object

$server:=New object
$server.host:="pop.gmail.com" //Obrigatório
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

$transporter:=POP3 New transporter($server)

//mailbox informação
$boxInfo:=$transporter.getBoxInfo()
ALERT("The mailbox contains "+String($boxInfo.mailCount)+" messages.")

.getMail()

Histórico
VersãoMudanças
v18 R2Adicionado

.getMail( msgNumber : Integer ) : Object

ParâmetrosTipoDescrição
msgNumberInteger->Número da mensagem que na lista
ResultadosObjeto<-Email object
Descrição

A função .getMail() devolve o Email objeto correspondente ao msgNumber na caixa de correio designada pelo transportador POP3. Essa função permite manejar localmente os conteúdos de email.

Passe em msgNumber o número da mensagem a recuperar. O número é retornado na propriedade número pela função .getMailInfoList().

O método retorna Null se:

  • msgNumber determina uma mensagem não existente,
  • a mensagem foi marcada para apagar usando .delete( ).

Objeto devolvido

.getMail() returns an Email object.

Exemplo

Se quiser saber o emissário do primeiro email da mailbox:

 var $server; $transporter : Object
var $mailInfo : Collection
var $sender : Variant

$server:=New object
$server.host:="pop.gmail.com" //Obrigatório
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

$transporter:=POP3 New transporter($server)

$mailInfo:=$transporter.getMailInfoList()
$sender:=$transporter.getMail($mailInfo[0].number).from

.getMailInfo()

Histórico
VersãoMudanças
v18 R2Adicionado

.getMailInfo( msgNumber : Integer ) : Object

ParâmetrosTipoDescrição
msgNumberInteger->Número da mensagem que na lista
ResultadosObjeto<-mailInfo object
Descrição

A função .getMailInfo() devolve o Email objeto correspondente ao msgNumber na caixa de correio designada pelo transportador POP3. Essa função permite que recupere informação sobre o email.

Passe em msgNumber o número da mensagem a recuperar. O número é retornado na propriedade número pelo método .getMailInfoList().

O objeto mailInfo retornado contém as funcionalidades abaixo:

PropriedadeTipoDescrição
sizeNúmeroTamanho da mensagem em bytes
idTextID única da mensagem

O método retorna Null se:

  • msgNumber determina uma mensagem não existente,
  • a mensagem foi marcada para apagar usando .delete( ).
Exemplo
 var $server; $mailInfo : Object
var $mailNumber : Integer

$server.host:="pop.gmail.com" //Mandatory
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

var $transporter : 4D.POP3Transporter
$transporter:=POP3 New transporter($server)

//message info
$mailInfo:=$transporter.getMailInfo(1) //get the first mail
If($mailInfo #Null)
ALERT("First mail size is:"+String($mailInfo.size)+" bytes.")
End if
End if

.getMailInfoList()

Histórico
VersãoMudanças
v18 R2Adicionado

.getMailInfoList() : Collection

ParâmetrosTipoDescrição
ResultadosCollection<-Collection of mailInfo objects
Descrição

A função .getMailInfoList() devolve uma coleção de mailInfo objectos que descrevem todas as mensagens na caixa de correio designada pelo transportador POP3. Essa função permite gerenciar localmente a lista de mensagens localizadas no servidor POP3.

Cada objeto mailInfo na coleção retornada contém as propriedades abaixo:

PropriedadeTipoDescrição
[ ].sizeNúmeroTamanho da mensagem em bytes
[ ].numberNúmeroNúmero da mensagem
[ ].idTextID único da mensagem (útil se armazenar a mensagem localmente)

Se a mailbox não conter uma mensagem, uma coleção vazia é retornada.

número e propriedades ID

number é o número de uma mensagem no mailbox no momento em que POP3_transporter for criado. A propriedade number não é um valor estático em relação a qualquer mensagem específica e vai mudar de sessão a sessão dependendo de sua relação com outras mensagens no mailibox na hora em que a sessão for aberta. Os números atribuídos às mensagens só são válidos durante a duração do POP3_transporter. No momento em que POP3_transporter for apagado qualquer mensagem marcada para ser apagada será removida. Quando o usuário se registrar de volta no servidor, as mensagens atuais no mailbox serão numeradas de 1 a x.

Entretanto, id é um número único atribuído à mensagem quando for recebida pelo servidor. Esse número é calculado usando a hora e data que a mensagem for recebida e é um valor atribuído ao seu servidor POP3. Infelizmente, servidores POP3 não usam a referência primária id para suas mensagens. Através das sessões POP3 precisa especificar o number como a referência às mensagens no servidor. Desenvolvedores podem precisar ter cuirdado se desenvolverem soluções que trazem referências às mensagens na database mas deixam o corpo da mensagem no servidor.

Exemplo

Se quiser saber o número total e tamanho dos emails nas mailbox:

 var $server : Object
$server:=New object
$server.host:="pop.gmail.com" //Obrigatório
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

var $transporter : 4D.POP3Transporter
$transporter:=POP3 New transporter($server)

C_COLLECTION($mailInfo)
C_LONGINT($vNum;$vSize)

$mailInfo:=$transporter.getMailInfoList()
$vNum:=$mailInfo.length
$vSize:=$mailInfo.sum("size")

ALERT("The mailbox contains "+String($vNum)+" message(s) for "+String($vSize)+" bytes.")

.getMIMEAsBlob()

Histórico
VersãoMudanças
v18 R3Adicionado

.getMIMEAsBlob( msgNumber : Integer ) : Blob

ParâmetrosTipoDescrição
msgNumberInteger->Número da mensagem que na lista
ResultadosBlob<-Blob of the MIME string returned from the mail server
Descrição

A função .getMIMEAsBlob() devolve um BLOB contendo o conteúdo MIME para a mensagem correspondente ao msgNumber na caixa de correio designada pelo POP3_transporter.

Passe em msgNumber o número da mensagem a recuperar. O número é retornado na propriedade número pelo método .getMailInfoList().

O método retorna uma BLOB vazia se:

  • msgNumber determina uma mensagem não existente,
  • a mensagem foi marcada para apagar usando .delete().

BLOB devolvido

.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

Se quiser saber o número total e tamanho dos emails nas mailbox:

 var $server : Object
var $mailInfo : Collection
var $blob : Blob
var $transporter : 4D.POP3Transporter

$server:=New object
$server.host:="pop.gmail.com"
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

$transporter:=POP3 New transporter($server)

$mailInfo:=$transporter.getMailInfoList()
$blob:=$transporter.getMIMEAsBlob($mailInfo[0].number)

.host

Histórico
VersãoMudanças
v17 R5Adicionado

.host : Text

Descrição

A propriedade .host contém o nome ou o endereço IP do servidor anfitrião. Utilizado para transacções postais (SMTP, POP3, IMAP).

.logFile

Histórico
VersãoMudanças
v17 R5Adicionado

.logFile : Text

Descrição

A propriedade .logFile contém o caminho do arquivo de registo alargado definido (se existir) para a ligação de correio. Pode ser relativo (à pasta atual de Logs) ou absoluto.

Ao contrário dos arquivos de registo regulares (ativados através do comando SET DATABASE PARAMETER ), os arquivos de registo armazenam o conteúdo MIME de todos os e-mails enviados e não têm qualquer limite de tamanho. Para mais informações sobre arquivos de registo estendidos, consultar:

.port

Histórico
VersãoMudanças
v17 R4Adicionado

.port : Integer

Descrição

A propriedade .port contém o número do porto utilizado para as transações postais. Por padrão, se a propriedade não tiver sido definida no objeto servidor (utilizado para criar o objecto transportador com SMTP Novo transportador, POP3 Novo transportador, ou IMAP Novo transportador), o valor é 30:

  • SMTP - 587
  • POP3 - 995
  • IMAP - 993

.undeleteAll()

Histórico
VersãoMudanças
v18 R2Adicionado

.undeleteAll()

ParâmetrosTipoDescrição
Não exige nenhum parâmetro
Descrição

A função .getMIMEAsBlob() remove todas as flags de deletar colocadas nos e-mails no POP3_transporter.

.user

Histórico
VersãoMudanças
v17 R4Adicionado

.user : Text

Descrição

A propriedade .user contém o nome de usuário utilizado para autenticação no servidor de correio.