Ci sto provando anch'io a fare una webmail, purtroppo ho qualche problemino, in fatto di attachments sono solo riuscito a scaricare il nome del file, per fare questo ho utilizzato la funzione imap_bodystruct(), che restituisce un oggetto che chiamero' successivamente "oggetto mail", questo oggetto restituisce un attributo parts che e' un Array di oggetti molto simili "mail", l'nica differenza e' che gli elementi di tale array non hanno l'attributo "parts",
accedendo ai vari elementi di parts
$body = imap_bodystruct(....,2);
L'ultimo parametro della funzione e' 2 a me funziona, ma non credo copra il 100% dei casi(sarebbe troppo facile), lo sto ancora testando.
Successivamente devi accedere al nome del file:
if ($body->ifdparameters){
$att = $body->dparameters[0];
if ($att->attribute == 'FILENAME' || $att->attribute == 'filename'){
$file = $att->value;
}
}