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
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.