POP3Transporter
La classe POP3Transporter vous permet de récupérer des messages à partir d'un serveur de messagerie POP3.
Objet POP3 Transporter
Les objets POP3 Transporter sont instanciés avec la commande POP3 New transporter. Leurs propriétés et fonctions sont les suivantes :
4D.POP3Transporter.new()
4D.POP3Transporter.new*( server : Object ) : 4D.POP3Transporter
| Paramètres | Type | Description | |
|---|---|---|---|
| server | Object | -> | Informations sur le serveur de messagerie | 
| Résultat | 4D.POP3Transporter | <- | Objet POP3 Transporter | 
Description
La fonction 4D.POP3Transporter.new() crée et retourne un nouvel objet de type 4D.POP3Transporter. Elle est identique à la commande POP3 New transporter (raccourci).
Exemple
 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
.delete()
Historique
| Release | Modifications | 
|---|---|
| 18 R2 | Ajout | 
.delete*( msgNumber : Integer )
| Paramètres | Type | Description | |
|---|---|---|---|
| msgNumber | Integer | -> | Numéro du message à supprimer | 
Description
La fonction .delete() marque l'email msgNumber pour suppression sur le serveur POP3.
Dans le paramètre msgNumber, passez le numéro de l'email à supprimer. Ce numéro est renvoyé dans la propriété number par la fonction .getMailInfoList().
L'exécution de cette méthode ne supprime pas réellement l'email. L'email marqué sera supprimé sur le serveur POP3 uniquement lorsque l'objet POP3_transporter (créé à l'aide de POP3 New transporter) sera détruit. Le marqueur pourra également être retiré via la fonction .undeleteAll().
Si la session courante se termine inopinément et que le connexion est fermée (ex : timeout, panne de réseau, etc.), un message d'erreur est généré et les messages marqués pour suppression demeureront sur le serveur POP3.
Exemple
 $mailInfoList:=$POP3_transporter.getMailInfoList()
 For each($mailInfo;$mailInfoList)
  // Marquer votre e-mail comme "à supprimer à la fin de la session"
    $POP3_transporter.delete($mailInfo.number)
 End for each
  // Forcer la fermeture de la session pour supprimer les e-mails marqués pour suppression
 CONFIRM("Selected messages will be deleted.";"Delete";"Undo")
 If(OK=1) //suppression confirmée
    $POP3_transporter:=Null
 Else
    $POP3_transporter.undeleteAll() //supprimer les marqueurs de suppression
 End if
.getBoxInfo()
Historique
| Release | Modifications | 
|---|---|
| 18 R2 | Ajout | 
.getBoxInfo()* : Object
| Paramètres | Type | Description | |
|---|---|---|---|
| Résultat | Object | <- | Objet boxInfo | 
Description
La fonction .getBoxInfo() retourne un objet boxInfo correspondant à la boite de réception désignée par l'objet POP3 transporter. Cette fonction vous permet de récupérer des informations sur la boite de réception.
L'objet boxInfo contient les propriété suivantes :
| Propriété | Type | Description | 
|---|---|---|
| mailCount | Number | Nombre de messages contenus dans la boîte de réception | 
| size | Number | Taille du message en octets | 
Exemple
 var $server; $boxinfo : Object
 $server:=New object
 $server.host:="pop.gmail.com" //Obligatoire
 $server.port:=995
 $server.user:="4d@gmail.com"
 $server.password:="XXXXXXXX"
 $transporter:=POP3 New transporter($server)
  //mailbox info
 $boxInfo:=$transporter.getBoxInfo()
 ALERT("The mailbox contains "+String($boxInfo.mailCount)+" messages.")
.getMail()
Historique
| Release | Modifications | 
|---|---|
| 20 | Prise en charge du paramètre headerOnly | 
| 18 R2 | Ajout | 
.getMail*( msgNumber : Integer { ; headerOnly : Boolean } ) : Object
| Paramètres | Type | Description | |
|---|---|---|---|
| msgNumber | Integer | -> | Numéro du message dans la liste | 
| headerOnly | Boolean | -> | True pour télécharger uniquement les en-têtes de l'email (par défaut, False) | 
| Résultat | Object | <- | Objet Email | 
Description
La fonction .getMail() retourne l'objet Email correspondant au msgNumber dans la boite de réception désignée par l'objet POP3 transporter. Cette fonction vous permet de gérer localement le contenu de l'email.
Passez dans msgNumber le numéro du message à récupérer. Ce numéro est renvoyé dans la propriété number par la fonction .getMailInfoList().
Optionnellement, vous pouvez passer true dans le paramètre headerOnly pour exclure les parties body de l'objet Email renvoyé. Seules les propriétés d'en-tête (headers, to, from...) sont ensuite renvoyées. Cette option vous permet d'optimiser l'étape de téléchargement lorsque beaucoup d'emails sont sur le serveur.
L'option headerOnly peut ne pas être prise en charge par le serveur.
La fonction retourne Null si :
- msgNumber désigne un message inexistant,
- le message a été marqué pour suppression à l'aide de .delete().
Objet retourné
.getMail() renvoie un objet Email.
Exemple
Vous souhaitez connaitre l'expéditeur du premier mail de la boite de réception :
 var $server; $transporter : Object
 var $mailInfo : Collection
 var $sender : Variant
 $server:=New object
 $server.host:="pop.gmail.com" //obligatoire
 $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()
Historique
| Release | Modifications | 
|---|---|
| 18 R2 | Ajout | 
.getMailInfo*( msgNumber : Integer ) : Object
| Paramètres | Type | Description | |
|---|---|---|---|
| msgNumber | Integer | -> | Numéro du message dans la liste | 
| Résultat | Object | <- | Objet MailInfo | 
Description
La fonction .getMailInfo()retourne un objet mailInfo correspondant au msgNumber dans la boite de réception désignée par le transporteur POP3. Cette fonction vous permet de récupérer des informations sur l'email.
Dans le paramètre msgNumber, passez le numéro de l'email à récupérer. Ce numéro est renvoyé dans la propriété number par la fonction .getMailInfoList().
L'objet mailInfo retourné contient les propriété suivantes :
| Propriété | Type | Description | 
|---|---|---|
| size | Number | Taille du message en octets | 
| id | Text | ID unique du message | 
La fonction retourne Null si :
- msgNumber désigne un message inexistant,
- le message a été marqué pour suppression à l'aide de .delete().
Exemple
 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
.getMailInfoList()
Historique
| Release | Modifications | 
|---|---|
| 18 R2 | Ajout | 
.getMailInfoList()* : Collection
| Paramètres | Type | Description | |
|---|---|---|---|
| Résultat | Collection | <- | Collection d'objets mailInfo | 
Description
La fonction .getMailInfoList() retourne une collection d'objets mailInfo décrivant tous les messages dans la boite de réception désignée par le transporteur POP3. Cette fonction vous permet de gérer localement les listes de messages situés sur le serveur de messagerie POP3.
Chaque objet mailInfo retourné contient les propriété suivantes :
| Propriété | Type | Description | 
|---|---|---|
| [ ].size | Number | Taille du message en octets | 
| [ ].number | Number | Numéro du message | 
| [ ].id | Text | ID unique du message (utile si vous stockez le message localement) | 
Si la boîte de réception ne contient pas de message, une collection vide est retournée.
Propriétés number et ID
number est le numéro d'un message de la boite de réception au moment de la création du POP3_transporter. La propriété number n'est pas une valeur statique liée à un message spécifique. Elle change d'une session à l'autre en fonction de sa relation à d'autres messages de la boîte de réception au moment de l'ouverture de la session. Les numéros attribués aux messages ne sont valables que pendant la durée de vie de l'objet POP3_transporter. Lorsque le POP3_transporter est supprimé, les messages marqués pour suppression seront supprimés. Lorsque l'utilisateur se reconnecte au serveur, les messages courants de la boîte de réception sont renumérotés de 1 à x.
A l'inverse, id est un numéro unique assigné à un message lorsqu'il a été reçu par le serveur. Ce numéro est calculé à l'aide de l'heure et de la date de réception du message et sa valeur est assignée par votre serveur POP3. Malheureusement, les serveurs POP3 n'utilisent pas l'id comme référence primaire à leurs messages. Durant les sessions POP3, vous aurez besoin d'indiquer le number comme référence aux messages du serveur. Les développeurs doivent être vigilants s'ils développent des solutions qui importent des références aux messages dans une base de données tout en laissant le corps du message sur le serveur.
Exemple
Vous souhaitez connaitre le nombre total d'emails de la boîte de réception ainsi que leur taille :
 var $server : Object
 $server:=New object
 $server.host:="pop.gmail.com" //Obligatoire
 $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()
Historique
| Release | Modifications | 
|---|---|
| 18 R3 | Ajout | 
.getMIMEAsBlob*( msgNumber : Integer ) : Blob
| Paramètres | Type | Description | |
|---|---|---|---|
| msgNumber | Integer | -> | Numéro du message dans la liste | 
| Résultat | Blob | <- | Blob de la chaine MIME retournée par le serveur mail | 
Description
La fonction .getMIMEAsBlob() renvoie un BLOB contenant le contenu MIME du message correspondant au msgNumber dans la boîte aux lettres désignée par l'objet POP3_transporter.
Dans le paramètre msgNumber, passez le numéro de l'email à récupérer. Ce numéro est renvoyé dans la propriété number par la fonction .getMailInfoList().
La fonction retourne un Blob vide si :
- msgNumber désigne un message inexistant,
- le message a été marqué pour suppression à l'aide de .delete().
BLOB retourné
.getMIMEAsBlob() renvoie un BLOB qui peut être archivé dans une base de données ou converti en un objet Email avec la commande MAIL Convert from MIME.
Exemple
Vous souhaitez connaitre le nombre total d'emails de la boîte de réception ainsi que leur taille :
 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)
.undeleteAll()
Historique
| Release | Modifications | 
|---|---|
| 18 R2 | Ajout | 
*.undeleteAll()**
| Paramètres | Type | Description | |
|---|---|---|---|
| Ne requiert aucun paramètre | 
Description
La fonction .undeleteAll() supprime tous les marqueurs de suppression définis sur les emails dans le POP3_transporter.