Manejo de mailboxes con php

int=imap_createmailbox (mail_handler string_mbox)

String mbox debe estar codificado con imap_utf7_encode() y el formato del string es el mismo que en imap_open.

Ejemplo:

Example 1. imap_createmailbox() example
1
2 $mbox = imap_open(«{your.imap.host}»,»username»,»password»,OP_HALFOPEN)
3 || die(«can’t connect: «.imap_last_error());
4
5 $name1 = «phpnewbox»;
6 $name2 = imap_utf7_encode(«phpnewböx»);
7
8 $newname = $name1;
9
10 echo «Newname will be ‘$name1’
\n»;
11
12 # we will now create a new mailbox «phptestbox» in your inbox folder,
13 # check its status after creation and finaly remove it to restore
14 # your inbox to its initial state
15 if(@imap_createmailbox($mbox,imap_utf7_encode(«{your.imap.host}INBOX.$newname»))) {
16 $status = @imap_status($mbox,»{your.imap.host}INBOX.$newname»,SA_ALL);
17 if($status) {
18 print(«your new mailbox ‘$name1’ has the following status:
\n»);
19 print(«Messages: «. $status->messages ).»
\n»;
20 print(«Recent: «. $status->recent ).»
\n»;
21 print(«Unseen: «. $status->unseen ).»
\n»;
22 print(«UIDnext: «. $status->uidnext ).»
\n»;
23 print(«UIDvalidity:». $status->uidvalidity).»
\n»;
24
25
if(imap_renamemailbox($mbox,»{your.imap.host}INBOX.$newname»,»{your.imap.host}INBOX.$name2″)) {
26 echo «renamed new mailbox from ‘$name1’ to ‘$name2’
\n»;
27 $newname=$name2;
28 } else {
29 print «imap_renamemailbox on new mailbox failed: «.imap_last_error().»
\n»;
30 }
31 } else {
32 print «imap_status on new mailbox failed: «.imap_last_error().»
\n»;
33 }
34 if(@imap_deletemailbox($mbox,»{your.imap.host}INBOX.$newname»)) {
35 print «new mailbox removed to restore initial state
\n»;
36 } else {
37 print «imap_deletemailbox on new mailbox failed:
«.implode(«
\n»,imap_errors()).»
\n»;
38 }
39
40 } else {
41 print «could not create new mailbox: «.implode(«
\n»,imap_errors()).»
\n»;
42 }
43
44 imap_close($mbox);
45

Devuelve true si pudo crear el mailbox o false en caso contrario.

int=imap_deletemailbox (mail_handler, string_mbox);

Elimina el mailbox indicado, el formato de mbox es el mismo que en imap_open.

int=imap_renamemailbox (mail_handler, string_old_mbox, string_new_mbox)

Permite renombrar un mailbox, el nombre del mailbox debe estar en el mismo formato que en imap_open.

obj_array=imap_getmailboxes (mail_stream, string_ref, string_pattern)

Devuelve un vector de objetos con información sobre los mailboxes

Los objetos que se encuentran en el vector tienen seteados los siguientes data_members:

– name – Nombre del mailbox (completo) encodeado, decodificar con imap_utf7_decode()
– delimiter – Delimitador usado para separar la jerarquía de mailboxes
– attributes – Es un bitmask que puede compararse con:
– LATT_NOINFERIORS (el mailbox no tiene subcarpetas)
– LATT_NOSELECT (es un mailbox no seleccionable)
– LATT_MARKED (mailbox marcado)
– LATT_UNMARKED (mailbox no marcado)

object=imap_status (mail_handler, string_mailbox, SA_ALL)

SA_ALL es una constante para recuperar toda la información sobre el mailbox, devuelve un objeto con los siguientes data members seteados:

– messages – número de mensajes en el mailbox
– recent – número de mensajes recientes en el mailbox
– unseen – número de mensajes no vistos en el mailbox

int imap_num_msg (mail_handler)

Devuelve el número de mensajes en el mailbox actual. (El abierto por el mail_handler)

int imap_num_recent (mail_handler)

Devuelve el número de mensajes recientes del mailbox correspondiente a mail_handler.

Fuente: Documento Generación de web sites dinámicos usando PHP