meerdere bijlages (attachments) van een email kunnen opslaan

Pagina: 1
Acties:

  • StevieNL
  • Registratie: April 2006
  • Laatst online: 11-08-2023
Beste Tweakers,

Heb even jullie hulp nodig, ben bezig met het opslaan van mail in een MySQL db. Dat werkt nu in zijn geheel goed, kom alleen een probleem tegen bij het opslaan van meerdere bijlages. Met dit script hieronder zal die altijd 1 bijlage opslaan, maar als je meerdere bijlages hebt slaat die altijd de laatste bijlage op.. kan iemand mij een duw geven in de goede richting of een oplossing zover mogelijk.

Alvast bedankt voor de moeite, voor het oplossen van dit probleem. Stevie
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<? 
for($r=0; $r < count($bijlagenaam); $r++){ 
  $handle = ""; 
  $rand = rand(0,1000000); 
  $bijlagetemp = $rand . "_" . $bijlagenaam[$r]; 
               
  if (!$handle = fopen("../UserFiles/email/" . trim($bijlagetemp), "w")) { 
    echo "Cannot open file ($bijlagetemp)"; 
    exit; 
  } 

  if (fwrite($handle, $data[$r]) === FALSE) { 
    echo "Cannot write to file ($bijlagetemp)"; 
    exit; 
  } 
                
  fclose($handle);               
               
} 
?>

[ Voor 11% gewijzigd door StevieNL op 08-05-2006 14:08 ]


Verwijderd

StevieNL schreef op maandag 08 mei 2006 @ 14:04:
Beste Tweakers,

Heb even jullie hulp nodig, ben bezig met het opslaan van mail in een MySQL db. Dat werkt nu in zijn geheel goed, kom alleen een probleem tegen bij het opslaan van meerdere bijlages. Met dit script hieronder zal die altijd 1 bijlage opslaan, maar als je meerdere bijlages hebt slaat die altijd de laatste bijlage op.. kan iemand mij een duw geven in de goede richting of een oplossing zover mogelijk.

Alvast bedankt voor de moeite, voor het oplossen van dit probleem. Stevie
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<? 
for($r=0; $r < count($bijlagenaam); $r++){ 
  $handle = ""; 
  $rand = rand(0,1000000); 
  $bijlagetemp = $rand . "_" . $bijlagenaam[$r]; 
               
  if (!$handle = fopen("../UserFiles/email/" . trim($bijlagetemp), "w")) { 
    echo "Cannot open file ($bijlagetemp)"; 
    exit; 
  } 

  if (fwrite($handle, $data[$r]) === FALSE) { 
    echo "Cannot write to file ($bijlagetemp)"; 
    exit; 
  } 
                
  fclose($handle);               
               
} 
?>
Het formaat staat in de volgende RFC's beschreven.
http://en.wikipedia.org/wiki/MIME#References

Wat mischien makkelijk is, is om een bestaande class te gebruiken die de MIME berichten opbouwt. Bijvoorbeeld de Mail_Mime class uit de PEAR library.
http://pear.php.net/package/Mail_Mime

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:03

Creepy

Tactical Espionage Splatterer

Doe eens een print_r op die $bijlagenaam (en eventueel op $data als je hele kleine attachments hebt) en controleer eens of daar in zit wat je verwacht.
Qua logica lijkt je code wel te kloppen mits $bijlagenaam en $data array's van gelijke grote zijn.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney