Newsgroup: it.comp.www.php
Titolo: client mail...

Ciao a tutti!
Stavo girando la rete alla ricerca di un client di posta scritto in
php da poter mettere sul mio dominio in alternativa a quello del
gestore, che non mi piace, ma non avendo trovato nulla di mio
gradimento mi sono detto "me lo faccio io, e provo a farlo tipo quello
di yahoo!" :D
Quindi mi sono messo alla ricerca di classi preconfezionate che
facessero il collegamento pop (niente imap purtroppo altrimenti avrei
scaricato roundcube...)... ne ho trovate di carine su 
phpclasses.org
,
il problema e' che mi sputano fuori la struttura MIME o tutto l'output
del server pop che poi io dovrei parsare...
Quindi a questo punto mi sono bloccato perche' non so come si mettono
insieme i pezzi!! Fino alla visualizzazione delle opzioni base
(mittente, destinatario, oggett) riesco... dopodiche' non so piu' cosa
incastrare dove... soprattutto per quanto riguarda gli allegati...
Vi posto l'array che mi restituisce la classe mime che parsifica il
messaggio scaricato dal pop:
Message 1:
array(2) {
  ["Headers"]=>
  array(16) {
    ["return-path:"]=>
    string(28) ""
    ["x-original-to:"]=>
    string(20) "
mas...@mponline.org
"
    ["delivered-to:"]=>
    string(20) "
mas...@mponline.org
"
    ["received:"]=>
    string(146) "from 
extrapedia.com
 (unknown [123.99.75.214])	by
hostingprofessionale.net
 (Postfix) with SMTP id AD92215AC;	Sun,  8 Jul
2007 13:09:17 +0200 (CEST)"
    ["message-id:"]=>
    string(44) "<276501c7c188$7c0824d0$ca65d5bf@issuersygup>"
    ["from:"]=>
    string(38) ""Evelyne" "
    ["to:"]=>
    string(31) ""Roxann" "
    ["cc:"]=>
    string(27) ""Kam" "
    ["subject:"]=>
    string(21) "You are in, never out"
    ["date:"]=>
    string(31) "Sun, 08 Jul 2007 17:50:34 +0700"
    ["mime-version:"]=>
    string(3) "1.0"
    ["content-type:"]=>
    string(101) "multipart/related;	type="multipart/alternative";
boundary="----=_NextPart_EBE_D5D4_AE9E2680.EA6F9951""
    ["x-priority:"]=>
    string(1) "3"
    ["x-msmail-priority:"]=>
    string(6) "Normal"
    ["x-mailer:"]=>
    string(40) "Microsoft Outlook Express 6.00.2900.3028"
    ["x-mimeole:"]=>
    string(45) "Produced By Microsoft MimeOLE V6.00.2900.3028"
  }
  ["Parts"]=>
  array(2) {
    [0]=>
    array(2) {
      ["Headers"]=>
      array(1) {
        ["content-type:"]=>
        string(75) "multipart/alternative;	boundary="----
=_NextPart_BD9_8AAB_EA016A4C.72446F81""
      }
      ["Parts"]=>
      array(2) {
        [0]=>
        array(4) {
          ["Headers"]=>
          array(2) {
            ["content-type:"]=>
            string(32) "text/plain;	charset="iso-8859-1""
            ["content-transfer-encoding:"]=>
            string(16) "quoted-printable"
          }
          ["Parts"]=>
          array(0) {
          }
          ["BodyPart"]=>
          int(1)
          ["BodyLength"]=>
          int(2913)
        }
        [1]=>
        array(4) {
          ["Headers"]=>
          array(2) {
            ["content-type:"]=>
            string(31) "text/html;	charset="iso-8859-1""
            ["content-transfer-encoding:"]=>
            string(16) "quoted-printable"
          }
          ["Parts"]=>
          array(0) {
          }
          ["BodyPart"]=>
          int(2)
          ["BodyLength"]=>
          int(3739)
        }
      }
    }
    [1]=>
    array(5) {
      ["Headers"]=>
      array(3) {
        ["content-type:"]=>
        string(33) "image/gif;	name="Ka0Yf2luNIU.gif""
        ["content-transfer-encoding:"]=>
        string(6) "base64"
        ["content-id:"]=>
        string(44) "<77c3601c7c18827c611a4093e3236c@issuersygup>"
      }
      ["Parts"]=>
      array(0) {
      }
      ["FileName"]=>
      string(15) "Ka0Yf2luNIU.gif"
      ["BodyPart"]=>
      int(3)
      ["BodyLength"]=>
      int(17591)
    }
  }
}
Come vedete tra l'altro non mi compare neanche il body...
Mi piacerebbe proprio fare un client tutto mio.. ma devo superare
questo scoglio prima :D
Grazie a tutti!

 incastrare dove... soprattutto per quanto riguarda gli allegati...
Devi leggerti la documentazione (o il sorgente) della classe. Ci saranno 
sicuramente delle funzioni che restituiscono i vari pezzi, tipo 
mail->getBody() o foreach($mail->Attachments() as $attach)
Bye.

 mail->getBody() o foreach($mail->Attachments() as $attach)
Purtroppo no... la classe che ho trovato (e come lei praticamente
tutte le altre che ho trovato) mi resituisce un array in quella
forma... il body forse posso ricavarmelo usando i boundary, pero' non
e' questo che mi interessa ora... vorrei capire come si incastrano i
pezzi di quell'array per comporre la mail inviatami...
Quella classe fa una connessione al pop con l'fsockopen, quindi manda
i comandi telnet e da l'output in pasto ad una classe che ne fa il
parsing mime e ritorna l'array... nell'output dei comandi tenlet c'e'
anche il body ovviamente... nell'array no...
Ammetto che sono un po' in alto mare :)))))))))))))

 Bye.
ho trovato qualcosa come mime parser (non legata al IMAP) quindi puo
parserare
il messaggio .
ma ci sono dei problemi nell parser in quanto la mail non ha uno schema
xml, json ma uno schema fatto "c..o" e parsare correttamente i messaggi e'
un impresa
da everest.
per l'invio ci sono dei problemi anche se mime standard
outlook-outlookex-outlookex non lo vedono correttamente e altri si
adirittura della stessa versione di OE (mi riferisco a mail html)
il sistema e' fattibile ma non di certo in 1 giorno.

 il sistema e' fattibile ma non di certo in 1 giorno.
Immaginavo, infatti e' un qualcosa che vorrei fare "a tempo perso"
visto che sarebbe a mio uso e consumo a meno che non venga una cosa
carina da poter condividere)
il mime parser l'ho trovato anche io, infatti l'outuput che ho scritto
nel primo post me lo butta fuori proprio lui...
Pensavo di parsare prendendo i pezzi e cercare tutti i boundary e poi
fare le divisioni trattando tutta la mail come una stringa... pero'
poi mi si presenta il problema degli allegati e delle immagini nelle
mail html...