php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #78572 Discontinue use of c-client library
Submitted: 2019-09-20 03:07 UTC Modified: 2019-11-05 23:52 UTC
Votes:1
Avg. Score:1.0 ± 0.0
Reproduced:0 of 1 (0.0%)
From: bishop@php.net Assigned:
Status: Open Package: IMAP related
PHP Version: Irrelevant OS:
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2019-09-20 03:07 UTC] bishop@php.net
Description:
------------
The IMAP extension does not perform as well as pure user-land implementations of the IMAP protocol. This is due, in largest part, to the c-client library on which this extension's based: c-client is many years unmaintained and there are numerous bugs related to it.

Scope of this ticket is to formulate a remediation plan, where we can either replace c-client with a similar, maintained library or implement the IMAP protocol ourselves natively. This is essentially a reboot of the IMAP extension and would require, I believe, extensive work to accomplish.

An alternative is to sunset the extension, encouraging consumers to switch to a pure PHP extension.


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2019-09-20 03:11 UTC] bishop@php.net
See also https://externals.io/message/103464
 [2019-09-20 03:12 UTC] bugreports at gmail dot com
problem is that there is no userland implementation i know of which supports POP3 the same way which is interesting when you have a testing mailserver with all sort of previously problem messages burried in a autotest to make sure they are reconstructed identically with IMAP/POP3 and at least here we heave a large amount of POP3 users
 [2019-09-20 04:57 UTC] bishop@php.net
Thanks for mentioning POP3 support, bugreports@gmail.com. No matter what happens, we'd not abandon POP3 support.

If we sunset the PHP IMAP extension, then we'd recommend consumers update their applications to use a robust, IMAP and POP3 capable library. For example, Horde/Imap_Client[1] supports POP3[2], is fast, well-tested, and extensible.

If we choose to reboot the extension, when we'd have to make it support IMAP and POP3.

[1]:https://dev.horde.org/imap_client/
[2]:https://github.com/horde/Imap_Client/blob/master/doc/Horde/Imap/Client/examples/tutorial.md
 [2019-09-20 07:45 UTC] kalle@php.net
Note, I'm not super familiar with c-client anymore.

What would the technical cost and depth be to implement it in C, as our own library? Would it be sufficient to do so or would it be an overkill? The reason I'm asking is primarily that imap is a popular extension and it has been for a very long time, I personally would be sad to see it go, but if the grounds is that there is no otherwise stable backend to base it on, then I can agree on those merits that it should go.
 [2019-09-20 07:50 UTC] nikic@php.net
Providing a composer package that exposes the ext/imap API on top of some existing IMAP implementation is the way forward here, IMHO.

A native implementation of the IMAP protocol is a strong no-go from me. There is no benefit to implementing this in C, and lots of disadvantages, especially where it comes to security.
 [2019-09-20 09:29 UTC] cmb@php.net
I fully agree with Nikita.

The current show-stopper appears to be mail related tests on
Windows, which currently use ext/imap.
 [2019-11-05 20:42 UTC] toddr at cpanel dot net
FYI Imap-2007 will no longer compile on RedHat 8.
 [2019-11-05 20:45 UTC] ghghghghghgh at netflix dot com
> FYI Imap-2007 will no longer compile on RedHat 8

i doubt that RHEL has anything newer than Fedora 31 where it works depsipte of httpd crahes when you relod apache instead of a hard restart

it's not nice *but* there is *no* replacement in case someone drives serious IT and autotests to compare behavior if IMAP *and* POP3 for the same messages
 [2019-11-05 23:52 UTC] girgias@php.net
Related to Bug #78783
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Wed Nov 13 23:01:29 2019 UTC