Scaricare foto da messaggi email

mariolino2009

Nuovo Utente
22 Gen 2009
6
0
0
Ciao a tutti.
Ho scritto un'applicazione per leggere i messaggi email che ricevo in modo da poterli inserire successivamente in un db on line.
Non ho capito che percorso posso seguire per scaricare e visualizzare le foto che ricevo in allegato per decidere se inviarle in upload successivamente sul db assieme al testo.
C'è qualcuno che sa consigliarmi in questo senso?
Grazie per l'attenzione.
Saluti:)
 
Grazie per l'attenzione.
Di fatto è un client email che utilizzo per inserire i campi nel form per l'upload.
Riesco con i vari campi ma non riesco con l'immagine perchè mi appare codificata.
Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="numero_verde.jpg" /9j/4AAQSkZJRgABAgAAZABkA.....etc
Non ho provato a decodificarla, non credo nemmeno sia la strada giusta...
Saluti
 
Nulla di fatto.
Comunque la foto rimarrebbe sul server remoto mentre il mio problema è scaricarla sul mio pc e visualizzarla magari come thumb.
Avevo ampliato un webbot che serviva per leggere l'email sul server che però non era struttutato per email che contengono file allegati.
L'intento era di selezionare l'email di eventuali inserzionisti per pubblicarle su un sito di annunci aziendale senza doverli trascrivere ogno volta.
Sono riuscito solo a metà, infatti non avendo la minima idea di come è strutturato un client pop3 e pur avendo estrapolato il nome ed anche il contenuto codificato base64 dell'immagine, non so come scaricarla dal server remoto.
Qualcosa come questo script scaricato dal web:
<?
set_time_limit(300);
//Percorso file remoto
$remotefile="http://www.sitename.com/file.ext";
//Cartella locale in cui copiare il file
$cartella="downloaded/"; // cartella dove mettere immagini
//apro il file remoto da leggere
$srcfile1 = fopen("$remotefile", "r");
//prelevo il nome del file
$nomefile=basename($remotefile);
//apro il file in locale
if (!($fp1 = fopen($cartella.$nomefile,"w")));
//scrivo contenuto del file remoto, ora in temp file, in file locale
while ($contents = fread( $srcfile1, 8192 )) {
fwrite( $fp1, $contents, strlen($contents) );
}
//chiudo i due files
fclose($srcfile1);
fclose($fp1);
?>
Ma qual'è il percorso del file sul server remoto???
Quindi non credo che sia neanche questa la strada.
Adesso sto vedendo che esistono client pop3 già scritti in php open source e quindi proverò a leggere gli scripts e cercare di capire per prima cosa come funziona.
Grazie ancora
Saluti:)
 
Ultima modifica:
Non esiste nessun file sul server remoto: i file allegati vengono inviati come parte dell'email, e non salvati. Se hai sia il nome che il contenuto del file in base64 basta fare così:
PHP:
$content = base64_decode('stringa codificata');

$fp = fopen($nome_file, 'a+');
fwrite($fp, $content);
fclose($fp);
E hai risolto! :)
 
Bravo!
Molto Bene!
Adesso il file è sulla stessa directory del file che lo legge.
Devo studiarlo per bene ... ma adesso va molto meglio.
Grazie ancora!
:)
 

Discussioni simili