diff options
Diffstat (limited to 'include/poller.php')
-rwxr-xr-x | include/poller.php | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/include/poller.php b/include/poller.php index 0297eeabc..0ea0c9231 100755 --- a/include/poller.php +++ b/include/poller.php @@ -371,10 +371,14 @@ function poller_run($argv, $argc){ } elseif($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) { + logger("Mail: Fetching"); + $mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1); if($mail_disabled) continue; + logger("Mail: Enabled"); + $mbox = null; $x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer_uid) @@ -388,6 +392,7 @@ function poller_run($argv, $argc){ openssl_private_decrypt(hex2bin($mailconf[0]['pass']),$password,$x[0]['prvkey']); $mbox = email_connect($mailbox,$mailconf[0]['user'],$password); unset($password); + logger("Mail: Connect"); if($mbox) { q("UPDATE `mailacct` SET `last_check` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1", dbesc(datetime_convert()), @@ -397,11 +402,16 @@ function poller_run($argv, $argc){ } } if($mbox) { + logger("Mail: mbox"); $msgs = email_poll($mbox,$contact['addr']); if(count($msgs)) { + logger("Mail: Parsing ".count($msgs)." mails."); + foreach($msgs as $msg_uid) { + logger("Mail: Parsing mail ".$msg_uid); + $datarray = array(); $meta = email_msg_meta($mbox,$msg_uid); $headers = email_msg_headers($mbox,$msg_uid); @@ -436,23 +446,28 @@ function poller_run($argv, $argc){ ); if(count($r)) { + logger("Mail: Seen before ".$msg_uid); if($meta->deleted && ! $r[0]['deleted']) { q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1", dbesc(datetime_convert()), intval($r[0]['id']) ); - } + } continue; } $datarray['title'] = notags(trim($meta->subject)); $datarray['created'] = datetime_convert('UTC','UTC',$meta->date); - + $r = email_get_msg($mbox,$msg_uid); - if(! $r) + if(! $r) { + logger("Mail: can't fetch msg ".$msg_uid); continue; + } $datarray['body'] = escape_tags($r['body']); - // some mailing lists have the original author as 'from' - add this sender info to msg body. + logger("Mail: Importing ".$msg_uid); + + // some mailing lists have the original author as 'from' - add this sender info to msg body. // todo: adding a gravatar for the original author would be cool if(! stristr($meta->from,$contact['addr'])) @@ -469,7 +484,7 @@ function poller_run($argv, $argc){ $datarray['author-name'] = $contact['name']; $datarray['author-link'] = 'mailbox'; $datarray['author-avatar'] = $contact['photo']; - + $stored_item = item_store($datarray); q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d", dbesc($datarray['parent-uri']), |