Hey,
Al een tijdje ben ik op zoek naar de mogelijkheid om bijlages die in een e-mail op de server staan te kunnen kopiëren naar een map op de server. Ik wil namelijk dat men via het beheerdersysteem bijlages kunnen ophalen en kunnen koppelen aan personen in de database.
Nu weet ik wel hoe je bijlages kunt tonen middels php en ook het downloaden is geen probleem (zie http://www.linuxscope.net/articles/mailAttachmentsPHP.html), alleen is het mij een raadsel hoe ik een bestand in een bijlage automatisch kan kopiëren naar een map op de server.
De functie die ik gebruik om attachments van een bericht op te vragen is (dit is een testpagina):
Heeft iemand een idee hoe ik een bijlage kan kopiëren naar een map op de server?
Alvast bedankt voor je reactie!
Al een tijdje ben ik op zoek naar de mogelijkheid om bijlages die in een e-mail op de server staan te kunnen kopiëren naar een map op de server. Ik wil namelijk dat men via het beheerdersysteem bijlages kunnen ophalen en kunnen koppelen aan personen in de database.
Nu weet ik wel hoe je bijlages kunt tonen middels php en ook het downloaden is geen probleem (zie http://www.linuxscope.net/articles/mailAttachmentsPHP.html), alleen is het mij een raadsel hoe ik een bestand in een bijlage automatisch kan kopiëren naar een map op de server.
De functie die ik gebruik om attachments van een bericht op te vragen is (dit is een testpagina):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| <?php function extract_attachments($connection, $message_number) { $attachments = array(); $structure = imap_fetchstructure($connection, $message_number); if(isset($structure->parts) && count($structure->parts)) { for($i = 0; $i < count($structure->parts); $i++) { $attachments[$i] = array( 'is_attachment' => false, 'filename' => '', 'name' => '', 'attachment' => '' ); if($structure->parts[$i]->ifdparameters) { foreach($structure->parts[$i]->dparameters as $object) { if(strtolower($object->attribute) == 'filename') { $attachments[$i]['is_attachment'] = true; $attachments[$i]['filename'] = $object->value; } } } if($structure->parts[$i]->ifparameters) { foreach($structure->parts[$i]->parameters as $object) { if(strtolower($object->attribute) == 'name') { $attachments[$i]['is_attachment'] = true; $attachments[$i]['name'] = $object->value; } } } if($attachments[$i]['is_attachment']) { $attachments[$i]['attachment'] = imap_fetchbody($connection, $message_number, $i+1); if($structure->parts[$i]->encoding == 3) { // 3 = BASE64 $attachments[$i]['attachment'] = base64_decode($attachments[$i]['attachment']); } elseif($structure->parts[$i]->encoding == 4) { // 4 = QUOTED-PRINTABLE $attachments[$i]['attachment'] = quoted_printable_decode($attachments[$i]['attachment']); } } } } return $attachments; } $mailbox = @imap_open("{domein.nl/imap4}INBOX","e-mailadres","wachtwoord"); $index = imap_msgno($mailbox, $_GET['id']); $attachments = extract_attachments($mailbox, $index); $numb = 1; for($i=0;$i<count($attachments);$i++) { if($attachments[$i]['is_attachment']) { echo 'Bijlage '.$numb.': '.$attachments[$i]['name'].'<br />'; $numb++; } } ?> |
Heeft iemand een idee hoe ik een bijlage kan kopiëren naar een map op de server?
Alvast bedankt voor je reactie!