|  | 
  Jason Kerner - 2011-03-05 12:50:00If there is more than one message in the inbox when the script runs, the script only saves the first one as within the do_action routine, it doesn't get called again once its processed the first message. Changing it to a while loop (while we still have a message in the inbox) it doesn't save any variables when the DB save statement runs
 
  sofus comer - 2011-06-19 15:35:10 - In reply to message 1 from Jason KernerAwesome script in so many ways!!!, but would like it to loop thru my inbox until its empty.
  Lil Peck - 2011-06-19 16:04:41 - In reply to message 2 from sofus comerIf memory serves me right, I remember the script refreshing/reloading and capturing messages one by one. Otherwise, a person could manually reload it or put a javascript refresh on it. One could also set up a cron tab to call it automatically every minute.
 I wrote a script in Classic ASP that uses the jmail component to archive emails to MySQL. If you are using a Windows server with jmail, you can google for my script.
  sofus comer - 2011-06-19 16:27:20 - In reply to message 3 from Lil PeckHi Lil, thanks for replying. I am on apache, linux. I have set up a cron so its not 100% dire if its not looping thru. Would just be nice!.
  Nick Fat - 2013-04-16 19:21:27 - In reply to message 4 from sofus comerHi, I would like to help, because this great class is provided for free:
 I adapted my do_action function as follows in order to import multiple messages into db:
 
 $this->num_message is the number of messages in the inbox. I simply made a loop. I don't know if this is the right way to go, and maybe some debugging will be needed.
 
 
 function do_action() {
 
 if ($this->num_message() >= 1) {
 
 if ($this->msgid <= 0) {
 $this->msgid = 1;
 } else {
 $this->msgid = $_GET[msgid] + 1;
 }
 for ($i = 1; $i <= $this->num_message(); $i++) {
 #Get first message
 $email = $this->email_get();
 
 #Get store dir
 $dir = $this->dir_name();
 
 #Insert message to db
 $ismsgdb = $this->db_add_message($email);
 
 $id_log = $this->add_db_log($email, 'Copy e-mail - start ');
 
 foreach ($this->partsarray as $part) {
 if ($part[text][type] == 'HTML') {
 #$message_HTML = $part[text][string];
 $this->db_update_message($part[text][string], $type = 'HTML');
 } elseif ($part[text][type] == 'PLAIN') {
 $message_PLAIN = $part[text][string];
 $this->db_update_message($part[text][string], $type = 'PLAIN');
 } elseif ($part[attachment]) {
 #Save files(attachments) on local disc
 // $message_ATTACH[] = $part[attachment];
 foreach (array($part[attachment]) as $attach) {
 $attach[filename] = $this->mimie_text_decode($attach[filename]);
 $attach[filename] = preg_replace('/[^a-z0-9_\-\.]/i', '_', $attach[filename]);
 $this->add_db_log($email, 'Start coping file:"' . strip_tags($attach[filename]) . '"');
 
 $this->save_files($this->newid . $attach[filename], $attach[string]);
 $filename = $dir . $this->newid . $attach[filename];
 $this->db_add_attach($attach[filename], $filename);
 $this->update_db_log('<b>' . $filename . '</b>Finish coping: "' . strip_tags($attach[filename]) . '"', $this->logid);
 }
 //
 } elseif ($part[image]) {
 #Save files(attachments) on local disc
 
 $message_IMAGE[] = $part[image];
 
 foreach ($message_IMAGE as $image) {
 $image[filename] = $this->mimie_text_decode($image[filename]);
 $image[filename] = preg_replace('/[^a-z0-9_\-\.]/i', '_', $image[filename]);
 $this->add_db_log($email, 'Start coping file: "' . strip_tags($image[filename]) . '"');
 
 
 $this->save_files($this->newid . $image[filename], $image[string]);
 $filename = $dir . $this->newid . $image[filename];
 $this->db_add_attach($image[filename], $filename);
 $this->update_db_log('<b>' . $filename . '</b>Finish coping:"' . strip_tags($image[filename]) . '"', $this->logid);
 }
 }
 }
 $this->spam_detect();
 $this->email_setflag();
 $this->email_delete();
 $this->email_expunge();
 
 $this->update_db_log('Finish coping', $id_log);
 
 if ($email <> '') {
 unset($this->partsarray);
 # echo "<meta http-equiv=\"refresh\" content=\"2; url=email.monitor.mail.php?msgid=".$this->msgid."\">";
 //		if ($this->mode == 'html') {
 //		    echo "<meta http-equiv=\"refresh\" content=\"2; url=" . $this->this_file_name . "?msgid=0\">";
 //		    echo "E-mail extract";
 //		}
 }
 $this->msgid = $this->msgid + 1;
 }
 } else {
 # No messages
 //	    if ($this->mode == 'html') {
 //		echo "<meta http-equiv=\"refresh\" content=\"10; url=" . $this->this_file_name . "?msgid=0\">";
 //		echo "E-mail extract";
 //	    }
 }
 }
  Joao Jose - 2015-02-18 22:07:55 - In reply to message 5 from Nick FatHi,I'm a complete idiot in terms of PHP. Could you post the complete PHP class so I don't mess it up?
 |