$mail.read¶
Description¶
Lit une boîte e-mail.
La méthode permet de renseigner les paramètres du serveur d'e-mail de différentes manières:
- soit en passant un nom de mailbox défini dans le config
- soit en passant explicitement les paramètres de connexion
type,host,portet éventuellementsecurity - soit en définissant les
propertiesexplicitement; dans ce cas, veuillez vous reporter à la documentation de javamail pour connaître les propriétés à définir
Syntaxe¶
$mail.read( options )
Paramètres¶
optionsmap-
Map pouvant contenir les options suivantes:
mailboxstring- Nom de la mailbox à utiliser. Fait référence à un
named'entréeemail.mailboxdu config. typestring- Type de boîte mail. Les types reconnus sont "pop3", "pop3s", "imap" et "imaps".
hoststring- URL du host à utiliser (si défini, prime sur les autres valeurs de host)
portnumber- Port du serveur smtp à utiliser (si défini, prime sur les autres valeurs de port)
usernamestring- Nom d'utilisateur pour l'authentification sur le serveur smtp (si défini, prime sur le username défini ailleurs)
passwordstring- Mot de passe à utiliser pour l'authentification sur le serveur smtp (si défini, prime sur le password défini ailleurs)
securitystring- Type de sécurité. Peut prendre une des valeurs "none", "starttls" ou "ssl" (ce dernier est mis pour le mode "ssl/tls")
propertiesmap-
Map de propriété à passer à la session. Cette option permet de passer tous les paramètres de connexion (p.ex "mail.pop3.host", "mail.pop3.port", "mail.pop3.starttls.enable", etc.) ainsi que des propriétés supplémentaires (p.ex "mail.debug", "mail.imap.timeout", "mail.pop3.timeout", etc.).
La liste exhaustive des propriétés est disponible sur les pages https://javaee.github.io/javamail/docs/api/com/sun/mail/imap/package-summary.html et https://javaee.github.io/javamail/docs/api/com/sun/mail/pop3/package-summary.html.
Les propriétés définies via cette option priment sur celles équivalentes définies par la méthode. Par exemple, le fait de spécifier une propriété "mail.imap.ssl.host" prime sur le host défini au niveau de la section mailbox référencée ou via la propriété
host. folderstring- Nom du dossier à lire (par défaut: "INBOX")
setFlagsarray / string- Liste de flags à définir sur les messages lus. La valeur attendue
est soit un tableau, soit une comma-separated list pouvant contenir
les flags suivants:
seen,flagged,answered,deleted,draft,recent,user. Il est possible d'utiliser des flags personnalisés, mais il se peut que le serveur d'e-mail ne supporte pas l'usage de tels flags. ignoreFlagsarray / string-
Liste de flags à utiliser comme filtre. Les messages ayant l'un des flags énumérés de la liste ne sont pas lus. La valeur attendue est soit un tableau, soit une comma-separated list pouvant contenir les flags suivant:
seen,flagged,answered,deleted,draft,recent,user. Il est possible d'utiliser des flags personnalisés, mais il est se peut que le serveur e-mail ne supporte pas l'usage de tels flags.Notez que les flags ne sont utilisables qu'en imap. Le filtre est sans effet sur une session pop3.
fetchProfilearray / string- Liste d'éléments à récupérer. Par défaut la méthode récupère toutes
les parties des messages, mais pour des raisons de performances il
est possible d'indiquer à la méthode de ne récupérer qu'une partie
des éléments, par exemple uniquement l'enveloppe sans le contenu.
La valeur attendue est soit un tableau, soit une comma-separated
list pouvant contenir les éléments suivants:
enveloppe,contentinfo,flags,sizeainsi que n'importe quel nom de header à récupérer du message (p.exX-mailer). getContentboolean-
Flag
true/falseindiquant si on souhaite récupérer le contenu du message (par défaut:false).Lorsque le flag est activé, la méthode essaie de récupérer le contenu aux formats "text" et "html". L'objet de retour de la méthode contiendra donc une propriété
contentqui est un map contenant ces deux types de contenus (textethtml). fixInlineImagesboolean-
Ce flag
true/falsedemande à la méthode d'effectuer un travail de substitution des références d'images. Concrètement, la méthode va tenter de remplacer les références d'éléments inline du genre:<img src="cid:part1.FdL0aOTi.xgazc0GI@somedomain.com">par une version base64 de l'image. Dans le cas ci-dessus, l'élément serait changé en
<img src="data:image/png;base64,iVBORw0KGgoAAAANS..."> getInlinesboolean-
Flag
true/falseindiquant si on souhaite récupérer séparément les objets inline. Les objets sont retournés sous forme d'un map, avec le cid utilisé comme clé.Par défaut:
false getAttachmentsboolean- Flag
true/falseindiquant si on souhaite récupérer les éventuelles pièces jointes (par défaut:false). cleanHistoryboolean- Ce flag
true/falsedemande à la méthode de ne pas reprendre le contenu historisé. Concrètement, la méthode ignore les lignes qui débutent par ">" sur le contenu "text" ainsi que les éléments "blockquote" du contenu "html". firstNumnumber- Numéro du premier message à récupérer.
firstNumetlastNumpermettent de récupérer les messages par blocs. Les deux paramètres sont numérotés à partir de 1. lastNumnumber- Numéro du dernier message à récupérer.
firstNumetlastNumpermettent de récupérer les messages par blocs. Les deux paramètres sont numérotés à partir de 1. Si le paramètre vaut 0, cela signifie qu'on veut uniquement faire un test de connexion, sans récupérer de message.
Retour¶
Retourne un tableau d'objets contenant les e-mails lus du serveur. Dans la version actuelle, les e-mails sont triés selon la date d'envoi (croissante).
Voici un exemple de map reprenant les données reçues pour un e-mail:
{
"cc": [],
"bcc": [],
"attachments": [
/path-to/44c1e4e4-8265-4ca1-ab84-3a5ca415e190,
/path-to/3b112a9f-4226-471f-a0bb-907979964d83
],
"subject": Example,
"num": 1,
"flags": [$HasAttachment],
"content": {
"html": <null>,
"text": Voir pièce jointe
},
"sentDate": 2025-04-14 11:29:02,
"size": 51753,
"replyTo": *******,
"from": *******,
"to": [*******],
"inlines": {},
"contentType": multipart/mixed;
boundary=------------RyY8go3aObtj0G480ut0yZZV
}
Exemple¶
1 2 3 4 5 6 7 8 9 10 11 12 | |