Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/09/2018, à 11:51

alex2423

Trier ses mails avec un client mail en ligne de commande pour auto

Hello tout le monde,

Le fournisseur de mail ne fournit pas toujours des règles de redirection de mail coté serveur. Parfois, il fournis des règles mais elles ne sont pas très puissantes.

Thunderbird propose des filtres de folies, il est possible de filtrer par le traditionnel destinataire, expediteur mais aussi le poids du mail, l'age ... et j'en passe. Exemple de conf :
1537003271.png

C'est mon client mail sur mon netbook mais le tri se fait uniquement lorsque je regarde mes mails sur mon netbook. Mes mails ne seront pas trié si je consulte mes mails avant sur mon téléphone via K9-Mail.

Du coup, je me suis dit, cela pourrait être pas mal de laisser tourner en permanence un logiciel qui ferait le tri sur le serveur mail en se connectant en IMAP. Ce logiciel serait installé sur un serveur chez soit (exemple un nano PC comme le Ordroid HC2, le rocket 64 ou même un raspberry parce que cela demande peu de puissance)

Firefox dispose de l'option -headless permettant de le lancer sans interface graphique mais malheureusement cela ne semble pas être le cas de Thunderbird. Je n'ai pas vu la fonction dans thunderbird --help. Cela m’ennuierait d'installer bêtement un DE juste pour Thunderbird. Je sais qu'il y en a des légers mais je trouve cela stupide.



Du coup, je me suis donc renseigné sur les clients mails purement en ligne de commande :
https://doc.ubuntu-fr.org/courriel

ubuntu doc a écrit :

    En mode texte
        Mutt : Un courrielleur libre en mode console.
        Cone : un courrielleur libre en mode console plus léger de Mutt. http://www.courier-mta.org/cone/index.html
        Alpine : Le courrielleur libre en mode console de l'université de washington http://www.washington.edu/alpine/

Mutt, j'ai regardé la doc http://www.mutt.org/doc/manual/
et je dois avouer que je suis un peu perdu. J'ai essayé de chercher avec les mots clefs filter mais c'est peu probant. sad

Est ce que d'après vous un client mail tel que Mutt pourrait convenir à mon problème ? Je vais essayer de regarder sur d'autres site que le site officiel de Mutt qui est un peu trop touffu pour moi

Hors ligne

#2 Le 15/09/2018, à 12:26

toitoinebzh

Re : Trier ses mails avec un client mail en ligne de commande pour auto

salut

tu es sur que tu ne peux pas appliquer tes filtres sur tes mails une fois lus ? pour moi c'est possible

Hors ligne

#3 Le 15/09/2018, à 12:42

alex2423

Re : Trier ses mails avec un client mail en ligne de commande pour auto

En semaine, j'ouvre ma boite mail via Thunderbird uniquement le soir. Du coup, pendant la journée, via mon mobile, mes mails ne sont pas triés.

SI j'ouvre mes mails surK9-mail pendant la journée (tag lu), ils seront ensuite pris en compte par les filtes Thunderbird

Hors ligne

#4 Le 15/09/2018, à 17:08

LeoMajor

Re : Trier ses mails avec un client mail en ligne de commande pour auto

bonjour,
_ utiliser Sieve, au niveau du serveur
_ ou alors coder un truc client en python mais cela suppose que clem / zacclys soit un dossier abonné en imap.

Hors ligne

#5 Le 15/09/2018, à 17:40

alex2423

Re : Trier ses mails avec un client mail en ligne de commande pour auto

Hello LeoMajor !

Je n'ai pas accès au serveur. Ce n'est pas mon serveur  de mail. Mon fournisseur me propose un accès webmail via Roundcube mais il n'est pas possible de mettre en place des règles. C'est en projet en tout cas. Par contre, les possibilités de règles de filtrage ne seront jamais aussi complet qu'un bon vieux Thunderbird.

Qu'est ce que tu entends par dossier abonné ? En effet sur ma boite mail, je me suis créé un répertoire clem et celui-ci est accessible via mes clients mails K9-mail sur mon téléphone et Thunderbird sur mon netbook.
Coder un truc client en python, n'est ce pas un peu exagéré?.

Je suis surpris qu'il n'y ait pas de logiciel, ne nécessitant pas d'interface graphique, permettant de trier des mails .

Hors ligne

#6 Le 15/09/2018, à 18:10

LeoMajor

Re : Trier ses mails avec un client mail en ligne de commande pour auto

tu postes dans la rubrique serveur ...
Les solutions les plus efficaces se trouvent en IMAP, au niveau serveur . sieve, ou équivalent procmail, ..
Les moins intéressantes sont au niveau client.

je me suis créé un répertoire clem et celui-ci est accessible via mes clients mails K9-mail sur mon téléphone et Thunderbird sur mon netbook.

c'est un dossier abonné, synchronisé. (cela veut dire que a001 SUBSCRIBE clem a été invoqué lors d'une requête cliente RFC IMAP SUBSCRIBE

Hors ligne

#7 Le 18/09/2018, à 17:44

LeoMajor

Re : Trier ses mails avec un client mail en ligne de commande pour auto

La solution, peut-être la plus simple, orientée client.

En passant par Imapsync, on peut faire des filtres clients, bien qu'au départ cela n'a pas été pensé pour cette raison. Ensuite, utiliser le cron.
Imapsync, normalement, sert dans un autre contexte; copie, migration, pseudo rsync, selection spécifique (filtres IMAP SEARCH), super fetchmail, shared mailboxes, ..., entre 2 imap serveurs différents.

------

avec host1 (source)=host2 (destination), donc la même cible imap

# simule, copie les messages datés de hier, non lus, qui ont des pièces jointes, DE toto POUR tata, dans le dossier "pj"

dat=$(env LANG=C LC_ALL=C date +%d-%b-%Y -d yesterday);  # today, yesterday, "5 days ago", "2 months ago", "last week", "last month"
imapsync --dry --host1 imap.idem.tld --user1 toto@domain.tld --password1 123 --authmech1 CRAM-MD5 --ssl1 --host2 imap.idem.tld --user2 toto@domain.tld --password2 123 --authmech2 CRAM-MD5 --ssl2\
 --automap --search1 "SENTSINCE $dat UNSEEN FROM toto TO tata OR HEADER Content-Disposition attachment HEADER Content-Type multipart/mixed" --folder INBOX\
  --regextrans2 "s/.*/pj/"  --nofoldersizesatend --nofoldersizes --debugLIST
... --regextrans2 "s/.*/pj/"  --delete1      ; déplace le(s) message(s) lorsque host1=host2
... --regextrans2 "s/.*/pj/"  ; copie les messages dans le dossier "pj"
... --search1 "UID 1235 UID 2233"  --debugcontent               ; affiche les messages uid 1235 2233

ATTENTION le --dry est très important ( simule l'action sans effectuer les écritures), comme apt --simulate -s

imapsync

 usage: /usr/bin/imapsync [options]

 Several options are mandatory.
 str means string
 int means integer
 reg means regular expression
 cmd means command

 --dry               : Makes imapsync doing nothing, just print what would
                       be done without --dry.

 --host1        str  : Source or "from" imap server. Mandatory.
 --port1        int  : Port to connect on host1. Default is 143, 993 if --ssl1
 --user1        str  : User to login on host1. Mandatory.
 --showpasswords     : Shows passwords on output instead of "MASKED".
                       Useful to restart a complete run by just reading the log.
 --password1    str  : Password for the user1.
 --host2        str  : "destination" imap server. Mandatory.
 --port2        int  : Port to connect on host2. Default is 143, 993 if --ssl2
 --user2        str  : User to login on host2. Mandatory.
 --password2    str  : Password for the user2.

 --passfile1    str  : Password file for the user1. It must contain the
                       password on the first line. This option avoids to show
                       the password on the command line like --password1 does.
 --passfile2    str  : Password file for the user2. Contains the password.

 --ssl1              : Use a SSL connection on host1.
 --ssl2              : Use a SSL connection on host2.
 --tls1              : Use a TLS connection on host1.
 --tls2              : Use a TLS connection on host2.
 --debugssl     int  : SSL debug mode from 0 to 4.
 --sslargs1     str  : Pass any ssl parameter for host1 ssl or tls connection. Example:
                       --sslargs1 SSL_verify_mode=1 --sslargs1 SSL_version=SSLv3
                       See all possibilities in the new() method of IO::Socket::SSL
                       http://search.cpan.org/perldoc?IO::Socket::SSL#Description_Of_Methods
 --sslargs2     str  : Pass any ssl parameter for host2 ssl or tls connection.
                       See --sslargs1

 --timeout1     int  : Connection timeout in seconds for host1.
                       Default is 120 and 0 means no timeout at all.
 --timeout2     int  : Connection timeout in seconds for host2.
                       Default is 120 and 0 means no timeout at all.

 --authmech1    str  : Auth mechanism to use with host1:
                       PLAIN, LOGIN, CRAM-MD5 etc. Use UPPERCASE.
 --authmech2    str  : Auth mechanism to use with host2. See --authmech1

 --authuser1    str  : User to auth with on host1 (admin user).
                       Avoid using --authmech1 SOMETHING with --authuser1.
 --authuser2    str  : User to auth with on host2 (admin user).
 --proxyauth1        : Use proxyauth on host1. Requires --authuser1.
                       Required by Sun/iPlanet/Netscape IMAP servers to
                       be able to use an administrative user.
 --proxyauth2        : Use proxyauth on host2. Requires --authuser2.

 --authmd51          : Use MD5 authentification for host1.
 --authmd52          : Use MD5 authentification for host2.
 --domain1      str  : Domain on host1 (NTLM authentication).
 --domain2      str  : Domain on host2 (NTLM authentication).


 --folder       str  : Sync this folder.
 --folder       str  : and this one, etc.
 --folderrec    str  : Sync this folder recursively.
 --folderrec    str  : and this one, etc.

 --folderfirst  str  : Sync this folder first. --folderfirst "Work"
 --folderfirst  str  : then this one, etc.
 --folderlast   str  : Sync this folder last. --folderlast "[Gmail]/All Mail"
 --folderlast   str  : then this one, etc.

 --nomixfolders      : Do not merge folders when host1 is case sensitive
                       while host2 is not (like Exchange). Only the first
                       similar folder is synced (ex: Sent SENT sent -> Sent).

 --skipemptyfolders  : Empty host1 folders are not created on host2.

 --include      reg  : Sync folders matching this regular expression
 --include      reg  : or this one, etc.
                       in case both --include --exclude options are
                       use, include is done before.
 --exclude      reg  : Skips folders matching this regular expression
                       Several folders to avoid:
                        --exclude 'fold1|fold2|f3' skips fold1, fold2 and f3.
 --exclude      reg  : or this one, etc.

 --subfolder2   str  : Move whole host1 folders hierarchy under this
                       host2 folder  str    .
                       It does it by adding two --regextrans2 options before
                       all others. Add --debug to see what's really going on.

 --automap           : guesses folders mapping, for folders like
                       "Sent", "Junk", "Drafts", "All", "Archive", "Flagged".
 --f1f2    str1=str2 : Force folder str1 to be synced to str2,
                       --f1f2 overrides --automap and --regextrans2.
 --regextrans2  reg  : Apply the whole regex to each destination folders.
 --regextrans2  reg  : and this one. etc.
                       When you play with the --regextrans2 option, first
                       add also the safe options --dry --justfolders
                       Then, when happy, remove --dry, remove --justfolders.
                       Have in mind that --regextrans2 is applied after prefix
                       and separator inversion. For examples see
                       http://imapsync.lamiral.info/FAQ.d/FAQ.Folders_Mapping.txt

 --tmpdir       str  : Where to store temporary files and subdirectories.
                       Will be created if it doesn't exist.
                       Default is system specific, Unix is /tmp but
                       it's often small and deleted at reboot.
                       --tmpdir /var/tmp should be better.
 --pidfile      str  : The file where imapsync pid is written.
 --pidfilelocking    : Abort if pidfile already exists. Usefull to avoid
                       concurrent transfers on the same mailbox.

 --nolog             : Turn off logging on file
 --logfile      str  : Change the default log filename (can be dirname/filename).
 --logdir       str  : Change the default log directory. Default is LOG_imapsync

 --prefix1      str  : Remove prefix to all destination folders
                       (usually INBOX. or INBOX/ or an empty string "")
                       you have to use --prefix1 if host1 imap server
                       does not have NAMESPACE capability, so imapsync
                       suggests to use it. All other cases are bad.
 --prefix2      str  : Add prefix to all host2 folders. See --prefix1
 --sep1         str  : Host1 separator in case NAMESPACE is not supported.
 --sep2         str  : Host2 separator in case NAMESPACE is not supported.

 --skipmess     reg  : Skips messages maching the regex.
                       Example: 'm/[\x80-ff]/' # to avoid 8bits messages.
                       --skipmess is applied before --regexmess
 --skipmess     reg  : or this one, etc.

 --pipemess     cmd  : Apply this cmd command to each message content
                       before the copy.
 --pipemess     cmd  : and this one, etc.

 --disarmreadreceipts : Disarms read receipts (host2 Exchange issue)

 --regexmess    reg  : Apply the whole regex to each message before transfer.
                       Example: 's/\000/ /g' # to replace null by space.
 --regexmess    reg  : and this one, etc.

 --regexflag    reg  : Apply the whole regex to each flags list.
                       Example: 's/"Junk"//g' # to remove "Junk" flag.
 --regexflag    reg  : and this one, etc.

 --delete            : Deletes messages on host1 server after a successful
                       transfer. Option --delete has the following behavior:
                       it marks messages as deleted with the IMAP flag
                       \Deleted, then messages are really deleted with an
                       EXPUNGE IMAP command.

 --delete2           : Delete messages in host2 that are not in
                       host1 server. Useful for backup or pre-sync.
 --delete2duplicates : Delete messages in host2 that are duplicates.
                       Works only without --useuid since duplicates are
                       detected with an header part of each message.

 --delete2folders    : Delete folders in host2 that are not in host1 server.
                       For safety, first try it like this (it is safe):
                       --delete2folders --dry --justfolders --nofoldersizes
 --delete2foldersonly   reg : Deleted only folders matching regex.
                              Example: --delete2foldersonly "/^Junk$|^INBOX.Junk$/"
 --delete2foldersbutnot reg : Do not delete folders matching regex.
                              Example: --delete2foldersbutnot "/Tasks$|Contacts$|Foo$/"
 --noexpunge         : Do not expunge messages on host1.
                       Expunge really deletes messages marked deleted.
                       Expunge is made at the beginning, on host1 only.
                       Newly transferred messages are also expunged if
                       option --delete is given.
                       No expunge is done on host2 account (unless --expunge2)
 --expunge1          : Expunge messages on host1 after messages transfer.
 --expunge2          : Expunge messages on host2 after messages transfer.
 --uidexpunge2       : uidexpunge messages on the host2 account
                       that are not on the host1 account, requires --delete2
 --nomixfolders      : Avoid merging folders that are considered different on
                       host1 but the same on destination host2 because of
                       case sensitivities and insensitivities.

 --syncinternaldates : Sets the internal dates on host2 same as host1.
                       Turned on by default. Internal date is the date
                       a message arrived on a host (mtime).
 --idatefromheader   : Sets the internal dates on host2 same as the
                       "Date:" headers.

 --maxsize      int  : Skip messages larger  (or equal) than  int  bytes
 --minsize      int  : Skip messages smaller (or equal) than  int  bytes
 --maxage       int  : Skip messages older than  int  days.
                       final stats (skipped) don't count older messages
                       see also --minage
 --minage       int  : Skip messages newer than  int  days.
                       final stats (skipped) don't count newer messages
                       You can do (+ are the messages selected):
                       past|----maxage+++++++++++++++>now
                       past|+++++++++++++++minage---->now
                       past|----maxage+++++minage---->now (intersection)
                       past|++++minage-----maxage++++>now (union)

 --search       str  : Selects only messages returned by this IMAP SEARCH
                       command. Applied on both sides.
 --search1      str  : Same as --search for selecting host1 messages only.
 --search2      str  : Same as --search for selecting host2 messages only.
                       --search CRIT equals --search1 CRIT --search2 CRIT

 --exitwhenover int  : Stop syncing when total bytes transferred reached.
                       Gmail per day allows
                       2500000000 = 2.5 GB downloaded from Gmail as host2
                        500000000 = 500 MB uploaded to Gmail as host1.

 --maxlinelength int : skip messages with a line length longer than  int  bytes.
                       RFC 2822 says it must be no more than 1000 bytes.

 --useheader    str  : Use this header to compare messages on both sides.
                       Ex: Message-ID or Subject or Date.
 --useheader    str    and this one, etc.

 --subscribed        : Transfers subscribed folders.
 --subscribe         : Subscribe to the folders transferred on the
                       host2 that are subscribed on host1. On by default.
 --subscribeall      : Subscribe to the folders transferred on the
                       host2 even if they are not subscribed on host1.

 --nofoldersizes     : Do not calculate the size of each folder in bytes
                       and message counts. Default is to calculate them.
 --nofoldersizesatend: Do not calculate the size of each folder in bytes
                       and message counts at the end. Default is on.
 --justfoldersizes   : Exit after having printed the folder sizes.

 --syncacls          : Synchronises acls (Access Control Lists).
 --nosyncacls        : Does not synchronize acls. This is the default.
                       Acls in IMAP are not standardized, be careful.

 --usecache          : Use cache to speedup.
 --nousecache        : Do not use cache. Caveat: --useuid --nousecache creates
                       duplicates on multiple runs.
 --useuid            : Use uid instead of header as a criterium to recognize
                       messages. Option --usecache is then implied unless
                       --nousecache is used.

 --debug             : Debug mode.
 --debugfolders      : Debug mode for the folders part only.
 --debugcontent      : Debug content of the messages transfered. Huge ouput.
 --debugflags        : Debug mode for flags.
 --debugimap1        : IMAP debug mode for host1. Very verbose.
 --debugimap2        : IMAP debug mode for host2. Very verbose.
 --debugimap         : IMAP debug mode for host1 and host2.
 --debugmemory       : Debug mode showing memory consumption after each copy.

 --errorsmax     int : Exit when int number of errors is reached. Default is 50.

 --tests             : Run local non-regression tests. Exit code 0 means all ok.
 --testslive         : Run a live test with test1.lamiral.info imap server.
                       Useful to check the basics. Needs internet connexion.

 --version           : Print only software version.
 --noreleasecheck    : Do not check for new imapsync release (a http request).
 --releasecheck      : Check for new imapsync release (a http request).
 --noid              : Do not send/receive ID command to imap servers.
 --justconnect       : Just connect to both servers and print useful
                       information. Need only --host1 and --host2 options.
 --justlogin         : Just login to both host1 and host2 with users
                       credentials, then exit.
 --justfolders       : Do only things about folders (ignore messages).

 --help              : print this help.

 Example: to synchronize imap account "test1" on "test1.lamiral.info"
                     to  imap account "test2" on "test2.lamiral.info"
                     with test1 password "secret1"
                     and  test2 password "secret2"

 /usr/bin/imapsync \
    --host1 test1.lamiral.info --user1 test1 --password1 secret1 \
    --host2 test2.lamiral.info --user2 test2 --password2 secret2

Here is a [linux] system (Linux sas 4.10.0-42-generic #46~16.04.1-Ubuntu SMP Mon Dec 4 15:57:59 UTC 2017 x86_64)
with Perl 5.22.1 Mail::IMAPClient 3.38
$Id: imapsync,v 1.727 2016/08/19 10:30:36 gilles Exp gilles $
New imapsync release 1.882 available

Homepage: http://imapsync.lamiral.info/

pour RFC IMAP SEARCH . les conditions multiples de search

https://imapsync.lamiral.info/FAQ.d/FAQ.Messages_Selection.txt


#!/bin/cat
$Id: FAQ.Messages_Selection.txt,v 1.14 2018/05/24 11:34:30 gilles Exp gilles $

This document is also available online at
https://imapsync.lamiral.info/FAQ.d/
https://imapsync.lamiral.info/FAQ.d/FAQ.Messages_Selection.txt


=======================================================================
                Imapsync tips to select messages.
=======================================================================

Questions answered in this FAQ are:

Q. What messages imapsync syncs by default?

Q. Is there a way we can specify a date range to sync emails? 
   If yes, can you please share an example?

Q. Is there a way we can specify an age to sync emails? 
   If yes, can you please share some examples?

Q. I want to sync messages based on their UID.

Q. Can I migrate only mails with attachments?

Q. How can I move messages marked \Deleted from all folders to
   a dedicated folder?

Q. What are the selection criteria available with --search option?


=======================================================================
Q. What messages imapsync syncs by default?

R. By default, Imapsync syncs all messages, except duplicates.

=======================================================================
Q. Is there a way we can specify a date range to sync emails? 
   If yes, can you please share an example?

R. Yes, a date range is possible with the --search option.

  imapsync ... --search "SENTSINCE 1-Jan-2010" 
  
or 
  
  imapsync ... --search "SENTBEFORE 31-Dec-2010"

or
  
  imapsync ... --search "SENTSINCE 1-Jan-2010 SENTBEFORE 31-Dec-2010"

  Months are specified like this:
  
   Jan
   Feb
   Mar
   Apr
   May 
   Jun
   Jul 
   Aug
   Sep
   Oct 
   Nov
   Dec

=======================================================================
Q. Is there a way we can specify an age to sync emails? 
   If yes, can you please share some examples?

R. Yes, with the --maxage or the --minage option.

E.1 Sync only messages less than 2 days old:

  imapsync ... --maxage 2

E.2 Sync only messages more than 2 days old:

  imapsync ... --minage 2

E.3 Sync only messages more than 30 days old and less than 365 days old:

  imapsync ... --minage 30 --maxage 365

E.4 Sync only messages less than 30 days old or more than 365 days old:

  imapsync ... --maxage 30 --minage 365

Full explanation:

--maxage      <int>    : Skip messages older than <int> days.
                         final stats (skipped) don't count older messages
                         see also --minage
--minage      <int>    : Skip messages newer than <int> days.
                         final stats (skipped) don't count newer messages
                         You can do (+ are the messages selected):
                         past|----maxage+++++++++++++++>now
                         past|+++++++++++++++minage---->now
                         past|----maxage+++++minage---->now (intersection)
                         past|++++minage-----maxage++++>now (union)

C.1 By default,

  option --maxage is implemented as a --search SENTSINCE 
RFC 3501 says: SENTSINCE <date>
Messages whose [RFC-2822] Date: header (disregarding time and
timezone) is within or later than the specified date.

  Option --minage is implemented as a --search SENTBEFORE
RFC 3501 says: SENTBEFORE <date>
Messages whose [RFC-2822] Date: header (disregarding time and
timezone) is earlier than the specified date.

If --noabletosearch is on then --minage and --maxage deal
with the internal dates given by a FETCH imap command but 
not the Date: header. Internal date is the arrival date 
in the mailbox. Same remark for --noabletosearch1 and
--noabletosearch2 but only for one side then.

=======================================================================
Q. I want to sync messages based on their UID.

R. First have in mind that UIDs are unique only per folder, so work this
   way only with one folder at a time, with --folder option.

To show UIDs, there is the --debugLIST parameter.

  imapsync ...  --debugLIST

To sync only a part of all messages, selected by UIDs 
from 10000 to 11000:

  imapsync ... --search1 "UID 10000:11000" 

To sync from INBOX only 3 messages UIDs 20000 20002 20004:

  imapsync ... --search1 'OR OR UID 20000 UID 20002 UID 20004' --folder INBOX

To sync all messages from INBOX except 3 messages 
UIDs 20000 20002 20004:

  imapsync ... --search1 'NOT OR OR UID 20000 UID 20002 UID 20004' --folder INBOX

If you search n UIDs then you have to put n-1 OR in the search line,
that's IMAP.

=======================================================================
Q. Can I migrate only mails with attachments?

R. Use:

  imapsync ... --search "HEADER Content-Type multipart/mixed" 

or more generally:

  imapsync ... --search "OR HEADER Content-Disposition attachment HEADER Content-Type multipart/mixed" 


=======================================================================
Q. How can I move messages marked \Deleted from all folders to
   a dedicated folder?

R. To move \Deleted messages from all folders to a specific folder, 
   let's call it Trash, use:

  imapsync ... --search DELETED --regextrans2 "s/.*/Trash/" 

=======================================================================
Q. What are the selection criteria available with --search option?

R. The list of search criteria are listed below, an excerpt from RFC3501.

http://www.faqs.org/rfcs/rfc3501.html

6.4.4.  SEARCH Command
...
      ALL
         All messages in the mailbox; the default initial key for
         ANDing.

      ANSWERED
         Messages with the \Answered flag set.

      BCC <string>
         Messages that contain the specified string in the envelope
         structure's BCC field.

      BEFORE <date>
         Messages whose internal date (disregarding time and timezone)
         is earlier than the specified date.

      BODY <string>
         Messages that contain the specified string in the body of the
         message.

      CC <string>
         Messages that contain the specified string in the envelope
         structure's CC field.

      DELETED
         Messages with the \Deleted flag set.

      DRAFT
         Messages with the \Draft flag set.

      FLAGGED
         Messages with the \Flagged flag set.

      FROM <string>
         Messages that contain the specified string in the envelope
         structure's FROM field.

      HEADER <field-name> <string>
         Messages that have a header with the specified field-name (as
         defined in [RFC-2822]) and that contains the specified string
         in the text of the header (what comes after the colon).  If the
         string to search is zero-length, this matches all messages that
         have a header line with the specified field-name regardless of
         the contents.

      KEYWORD <flag>
         Messages with the specified keyword flag set.

      LARGER <n>
         Messages with an [RFC-2822] size larger than the specified
         number of octets.

      NEW
         Messages that have the \Recent flag set but not the \Seen flag.
         This is functionally equivalent to "(RECENT UNSEEN)".

      NOT <search-key>
         Messages that do not match the specified search key.

      OLD
         Messages that do not have the \Recent flag set.  This is
         functionally equivalent to "NOT RECENT" (as opposed to "NOT
         NEW").

      ON <date>
         Messages whose internal date (disregarding time and timezone)
         is within the specified date.

      OR <search-key1> <search-key2>
         Messages that match either search key.

      RECENT
         Messages that have the \Recent flag set.

      SEEN
         Messages that have the \Seen flag set.

      SENTBEFORE <date>
         Messages whose [RFC-2822] Date: header (disregarding time and
         timezone) is earlier than the specified date.

      SENTON <date>
         Messages whose [RFC-2822] Date: header (disregarding time and
         timezone) is within the specified date.

      SENTSINCE <date>
         Messages whose [RFC-2822] Date: header (disregarding time and
         timezone) is within or later than the specified date.

      SINCE <date>
         Messages whose internal date (disregarding time and timezone)
         is within or later than the specified date.

      SMALLER <n>
         Messages with an [RFC-2822] size smaller than the specified
         number of octets.

      SUBJECT <string>
         Messages that contain the specified string in the envelope
         structure's SUBJECT field.

      TEXT <string>
         Messages that contain the specified string in the header or
         body of the message.

      TO <string>
         Messages that contain the specified string in the envelope
         structure's TO field.

      UID <sequence set>
         Messages with unique identifiers corresponding to the specified
         unique identifier set.  Sequence set ranges are permitted.

      UNANSWERED
         Messages that do not have the \Answered flag set.

      UNDELETED
         Messages that do not have the \Deleted flag set.

      UNDRAFT
         Messages that do not have the \Draft flag set.

      UNFLAGGED
         Messages that do not have the \Flagged flag set.

      UNKEYWORD <flag>
         Messages that do not have the specified keyword flag set.

      UNSEEN
         Messages that do not have the \Seen flag set. 

=======================================================================
=======================================================================

Hors ligne