PDA

View Full Version : Allegato proveniente da email su server FTP


colinocata
27-10-2012, 18:09
Salve ragazzi, ho bisogno di poter caricare su un server ftp un allegato proveniente da una email. In sostanza ricevo una email quotidianamente con un pdf allegato e vorrei che quel file venga caricato automaticamente in un percorso del mio webserver per poterlo rendere disponibile sul web.

Avete idee? Qualche codice/funzione in php?

grazie mille

colinocata
29-10-2012, 15:37
up :)

tomminno
29-10-2012, 18:17
up :)

La funzione principale per leggere le mail in php è imap_open.
Qui c'è un esempio per leggere un'email e scaricare gli allegati (da verificare se funziona):
http://www.linuxscope.net/articles/mailAttachmentsPHP.html

colinocata
08-11-2012, 16:45
La funzione principale per leggere le mail in php è imap_open.
Qui c'è un esempio per leggere un'email e scaricare gli allegati (da verificare se funziona):
http://www.linuxscope.net/articles/mailAttachmentsPHP.html

Sto provando questa funzione ma a quanto pare non entra nella selezione if. Chi mi sa aiutare? :)
In pratica ho bisogno che gli allegati che lo script trova nei messaggi di posta vengano inseriti in uno specifico database chiamato 'allegati'. Quest0ultimo contiene una tabella 'imap_attachment' formata da due campi, ovvero 'MessID' e 'attachment'
Se non ho capito male il campo 'attachment' dovrei dichiararlo in formato binario.


<?
$ServerName = "{imap.tiscali.it/imap:143}INBOX"; // For a IMAP connection (PORT 143)
//$ServerName = "{pop.tiscali.it/pop3:110}INBOX"; // For a POP3 connection (PORT 110)

$UserName = "******@tiscali.it";
$PassWord = "*****";

$mbox = imap_open($ServerName, $UserName,$PassWord) or die("Could not open Mailbox - try again later!");


// --- Apre la connessione con il server MySQL
$conn = mysql_connect("****", "root", "password");
if (! $conn)
{
echo ("Errore durante la connessione a MySQL.");
exit();
}
// --- Selezione del database
mysql_select_db("allegati");


# Check if message has an attachment.

if (isset($struct->parts[1]->dparameters[0]->value)) {

$fileName = $struct->parts[1]->dparameters[0]->value;




$body = imap_fetchbody($mailbox, $i, 2);

$file = imap_base64($body);

$fh = fopen("/home/steve/www/imap/attachments/$fileName", "w");

fputs($fh, $file);

fclose($fh);



$fileInsert = file_get_contents("/home/steve/www/imap/attachments/$fileName");



mysql_query("INSERT INTO imap_attachments (messID, attachment)

VALUES ('$i', '".mysql_escape_string($fileInsert)."')");

}



mysql_close($conn);

imap_close($mbox);
?>

colinocata
10-11-2012, 13:01
upp