Jump to content

Saving Imap attachment to folder


neoson

Recommended Posts

I seem to be having a difficult time saving the attachments to a folder on the server, all the examples I see show it to the browser, what I need to do is copy the attachment to a separate folder and do some processing on it. So far everything I get, then ftp to my desktop appears corrupt. It works I just can't seem to unzip the zipped attachments, any ideas?

 

My Code: (Not mine, I used examples from the web and put it into a function)

 

function get_attachments($message_number){

 

global $connection;

 

$structure = imap_fetchstructure($connection, $message_number);

 

$attachments = array();

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;

}

 

 

Calling Code:

 

$a = get_attachments(6);

$fp = fopen($a[1]['filename'], 'w');

fwrite($fp, $a);

fclose($fp);

Link to comment
https://forums.phpfreaks.com/topic/256264-saving-imap-attachment-to-folder/
Share on other sites

Woops, on another topic, I do not like this forum setup, but I digress...

 

Here is a woops in the code I put in which I would like to modify but can't, it should be

 

$a = get_attachments(6);

$fp = fopen($a[1]['filename'], 'w');

fwrite($fp, $a[1]['attachment']);

fclose($fp);

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.