Advertisement
Draven

Attachment Loop

Aug 26th, 2012
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.15 KB | None | 0 0
  1.         # Check for attachments
  2.         if(isset($results['Related']) || isset($results['Attachments']))
  3.         {
  4.             function walk_func(&$el, $key, $params)
  5.             {
  6.                 global $database;
  7.  
  8.                 $email_id = $params[0];
  9.                 $last_email_id = $params[1];
  10.                 $last_email_message_id = $params[2];
  11.                 $fromEmail = $params[3];
  12.                 $new_email = $params[4];
  13.  
  14.                 /*
  15.                 # Debug
  16.                 print_r($params);
  17.                 echo "Email ID: ".$email_id."\n";
  18.                 echo "Last Email ID: ".$last_email_id."\n";
  19.                 echo "Last Email Message ID: ".$last_email_message_id."\n";
  20.                 echo "From Email: ".$fromEmail."\n";
  21.                 echo "New Email: ".$new_email."\n";
  22.                  */
  23.  
  24.                 $file_data = $el['Data'];
  25.                 $filename = $el['FileName'];
  26.                 $filename = preg_replace('/[^0-9,a-z,\.,_]*/i', '', str_replace(' ', '_', $filename));
  27.  
  28.                 if($new_email == true)
  29.                 {
  30.                     $database->query('INSERT INTO email_attachments (email_id, file_name, created) VALUES (?, ?, NOW())', array($last_email_id, $filename));
  31.                 }
  32.                 else {
  33.                     $database->query('INSERT INTO email_attachments (email_id, reply_id, file_name, created) VALUES (?, ?, ?, NOW())', array($email_id, $last_email_message_id, $filename));
  34.                 }
  35.  
  36.                 $last_attachment_id = $database->lastInsertId();
  37.  
  38.                 # Write the data to the file
  39.                 if(!is_dir(ATTACHMENTS.$fromEmail.DS.$last_email_id.DS.$last_attachment_id))
  40.                 {
  41.                     mkdir(ATTACHMENTS.$fromEmail.DS.$last_email_id.DS.$last_attachment_id.DS, 0755, true);
  42.                 }
  43.                 $fp = fopen(ATTACHMENTS.$fromEmail.DS.$last_email_id.DS.$last_attachment_id.DS.$filename, 'w');
  44.                 $written = fwrite($fp, $file_data);
  45.                 fclose($fp);
  46.  
  47.                 $database->query('UPDATE email_attachments SET file_size = :filesize WHERE id = :lastattachmentid', array(':filesize' => filesize(ATTACHMENTS.$fromEmail.DS.$last_email_id.DS.$last_attachment_id.DS.$filename), ':lastattachmentid' => $last_attachment_id));
  48.             };
  49.  
  50.             $data = array($email_id, $last_email_id, $last_email_message_id, $fromEmail, $new_email);
  51.             if(isset($results['Related']))
  52.             {
  53.                 array_walk($results['Related'], 'walk_func', $data);
  54.             }
  55.  
  56.             if(isset($results['Attachments']))
  57.             {
  58.                 array_walk($results['Attachments'], 'walk_func', $data);
  59.             }
  60.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement