imap icon indicating copy to clipboard operation
imap copied to clipboard

Future plans when ext-imap is gone?

Open c33s opened this issue 6 years ago • 3 comments

OpenSUSE, SLES und RHEL dropped support for ext-imap https://bugzilla.opensuse.org/show_bug.cgi?id=1089061

c33s avatar Jan 03 '19 14:01 c33s

Well, dropped support doesn't mean UW-IMAP and ext-imap can't be compiled from scratch or provided by an external repository.

At the time of writing we don't have any plan to substitute ext-imap.

Moving to pure sockets would be a great improvement, but also a huge work.

I'll wait to see what other distributions will move toward this topic.

Slamdunk avatar Jan 04 '19 02:01 Slamdunk

For the records: the most likely way to get away from ext-imap is something like https://github.com/ParticleBits/imap i.e. using zend-mail (here the docs). We'll deeply investigate whether does make sense to (1) ~reinvent the wheel~ re-implement the protocol, (2) use an external library or (3) directly deprecate the entire library.

Slamdunk avatar Jan 07 '19 07:01 Slamdunk

Just to add to the discussion...

I'm building a web-based email system using this library and i'm already having to use zend-mail because imap_status, in most of my tests, only returns ['flags']=0 response or wrong values of uidnext and uidvalidity. Using zend-mail's examineOrSelect function i can get all the info i need.

Another problem of using PHP's imap, is that there isn't a easy way to get the new UID of the messages after moving/copying them... Using sockets we could get it from the response, if the imap server has the 'UIDPLUS' extension, as described in section 4.2.2.1 of this link... Right now i'm using this code below to get the UIDs, but it is VERY inefficient...

$search = new ImapSearchExpression();
$search->addCondition(new ImapSearchOn($msg->date));
$search->addCondition(new ImapSearchSubject($msg->subject));
$search->addCondition(new ImapRawExpression(
    'TEXT "Message-ID: '.$msg->msg_id.'"'
));
$messages = $mailbox->getMessages($search);
if($messages->count() === 1) {
    // ...
}

nogenem avatar Jan 15 '19 11:01 nogenem