Accedi per seguire   
Seguaci 0
Odhinn

Php Mail Con Allegati

5 messaggi in questa discussione

salve a tutti. avrei la necessità di inserire in un sito un piccolo spazio per la ricezione delle mail con allegati. O meglio, le mail le ricevo, gli allegati no. Potete illuminarmi? :leggi:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

salve a tutti. avrei la necessità di inserire in un sito un piccolo spazio per la ricezione delle mail con allegati. O meglio, le mail le ricevo, gli allegati no. Potete illuminarmi? :leggi:

Non so se ho capito bene la domanda :) Ma vorresti scriverti un client POP3 in PHP?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
:) si si... o meglio, come dicevo le mail riesco a leggerle. il punto è che se mando una mail con allegato (dal mio server di posta) la mail arriva ma l'allegato no (ho gia verificato che il mio server di posta li manda correttamente, gli allegati). ho cercato, anche sul manuale di php ma dice che l'argomento è abbastanza complesso e che non lo trattera. :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

:) si si... o meglio, come dicevo le mail riesco a leggerle. il punto è che se mando una mail con allegato (dal mio server di posta) la mail arriva ma l'allegato no (ho gia verificato che il mio server di posta li manda correttamente, gli allegati). ho cercato, anche sul manuale di php ma dice che l'argomento è abbastanza complesso e che non lo trattera. :P

Infatti... L'argomento è abbastanza complesso :P Che funzioni hai utilizzato per implementare il client? Per leggere i messaggi dal server di posta?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

la funzione è questa:

<?php

require_once("mainfile.php");

global $op;

$mbox = imap_open("{192.168.0.245:110/pop3}INBOX","prova1@prova.com","Pro12006");

switch($op)

{

case "apri_messaggio":

{

$content = apri_messaggio($mbox,$_GET["a"]);

break;

}

default:

{

$content = posta_in_arrivo($mbox);

break;

}

}

imap_close($mbox);

function posta_in_arrivo($mbox)

{

$posta_in_arrivo .= ""

."<TABLE width=450 align=center>"

."<tr><td colspan=3 align=center><b>Posta in arrivo</b></td></tr>"

."<tr><td colspan=3 align=center> </td></tr>"

."<TR>"

."<TD width=150><FONT COLOR=RED><B>MITTENTE:</B></FONT></TD>"

."<TD width=150><FONT COLOR=RED><B>OGGETTO:</B></FONT></TD>"

."<TD width=100><FONT COLOR=RED><B>STRUTTURA:</B></FONT></TD>"

."</TR>";

$headers = imap_headers($mbox);

$a = "0";

if ($headers == false)

{

$posta_in_arrivo .= "La cartella 'POSTA IN ARRIVO' è vuota!<br />\n";

}

else

{

while (list ($key, $val) = each ($headers))

{

$a = $a + 1;

$overview = imap_fetch_overview($mbox,$a,0);

while(list($key, $value) = each($overview))

{

$posta_in_arrivo .= ""

."<tr>"

."<td bgcolor=#DDDDDD>".$value->from."</td>"

."<td bgcolor=#DDDDDD><a href=$PHP_SELF?name=".$_GET["name"]."&op=apri_messaggio&a=".$a."><b>".$value->subject."</b></a></TD>"

."<td bgcolor=#DDDDDD><a href=struttura.php?a=".$a." target=destra><b>struttura</b></a></TD>"

."</TR>\n";

}

}

}

$posta_in_arrivo .= "</TABLE>";

return $posta_in_arrivo;

}

function apri_messaggio($mbox,$a)

{

$struct = imap_fetchstructure($mbox,$a);

$e = "0";

$j = "";

$assegnato = false;

$modifica = false;

$ipertesti = false;

foreach($struct as $k => $valore)

{

if (!$assegnato AND $k=="subtype")

{

if ($valore=="RELATED")

{

$j = ".2";

$assegnato=true;

}

if ($valore=="MIXED")

{

$j = ".2";

$assegnato = true;

$modifica = true; //se ci sono allegati deve essere stampata la prima parte dell'E-mail (il testo)

$dettaglio_messaggio .= "<TABLE width=100%><TR><TD bgcolor=#eeeeee align=right><FONT COLOR=RED size=2pt><B>ALLEGATI:  </font>";

}

}

if($k=="parts")

{

$parti = $struct -> parts;

foreach($parti as $k0 => $valore0)

{

$e = $e+1;

foreach($valore0 as $k1 => $valore1)

{

//////VERIFICo SE CI SONO ALLEGATI/////////////////////////////////////////////

if($k1=="disposition" AND $valore1=="ATTACHMENT")

{

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

$dettaglio_messaggio .= "<B><A href=allegato.php?a=$a&parte=$e target=_blank>".$allegato."</a>  ";

}

////////////////////////////////////////////////////////////////////////////////

}

}

}

}

if ($e=="0")

{

$e = 1;

$dettaglio_messaggio .= "<PRE>";

$ipertesti = true;

}

if ($modifica)

{

$e=1;

$dettaglio_messaggio .= "</B></TD></TR></TABLE><HR>";

}

$frase = imap_fetchbody($mbox, $a, $e.$j);

$frase = quoted_printable_decode(str_replace("=\r\n","",$frase));

if (!$ipertesti)

{

$dettaglio_messaggio .= $frase;

}

else

{

///////////////SERVE PER RICONOSCERE ED ATTIVARE GLI IPERTESTI(non è necessario però è utile!)/////////////

$parole="";

$righe = explode("\n", $frase);

for($z=0;$z<sizeof($righe);$z++)

{

$righe[$z] = $righe[$z]."<br>";

$parole=array_merge($parole,explode(" ", $righe[$z]));

}

for ($key=0;$key<sizeof($parole);$key++)

{

$http = strpos($parole[$key], "http");

$href = strpos($parole[$key], "href");

$www = strpos($parole[$key], "www");

if ($href === false)

{

if ($http === false AND $www === false)

{

$dettaglio_messaggio .= $parole[$key]." ";

}

else

{

$dettaglio_messaggio .= "<a href='".str_replace('<br>', '', $parole[$key])."' target=_blank>".$parole[$key]."</a>";

}

}

else

{

$dettaglio_messaggio .= $parole[$key]." ";

}

}

}

return $dettaglio_messaggio;

}

?>

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0