Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bounces and other utilities no longer work due to relying on the deprecated IMAP extension #1061

Open
lwcorp opened this issue Jan 16, 2025 · 3 comments
Labels
3.7.x PRs for 3.7

Comments

@lwcorp
Copy link
Contributor

lwcorp commented Jan 16, 2025

PHP’s IMAP extension is "DEPRECATED and UNBUNDLED as of PHP 8.4.0" which was released at the end of last year.

Yet various phpList utilities still rely on it, which is a bit unfortunate as those utilities are probably usually used for POP3 connections (phpList uses IMAP since they can be used for POP3 connections too).

First of all, all these months it completely blocked phpList installations and upgrades from Softaculous, which is for example the official way to install apps from cPanel. This got solved as I personally convinced them (it took some convincing) not to block because of it, and they thus released an immediate new block-less version. Here's how it looked like before they fixed it:
Image

But now it's time to handle the fact phpList must stop relying on this unused and unsupported extension.
When you try to process bounces, you get:

Error: IMAP is not included in your PHP installation, cannot continue
Check out http://www.php.net/manual/en/ref.imap.php

Image

Granted, there are 2 IMAP plugins that can serve as substitute, but one of them supports neither POP3 nor secure connections, the latter which makes it quite unsafe and probably unsupported in many environments. I can't even test it.

The second of them seems to have no error control, so if it fails it just returns an unknown reason:
Image
Then one's only hope is to write in the forum and hope the plugin's author will notice.
It can work if you:

  1. Switch $bounce_mailbox_port to imap instead of pop3 and likewise use an IMAP port number rather than a POP3 one - partially fixed in Ignore POP settings in $bounce_mailbox_port bramley/phplist-plugin-imap2#2
  2. Define an actual manual hostname in $bounce_mailbox_host instead of just localhost.

Either way, neither of these plugins was updated in years (the latter of which was updated recently after my tickets, but it may become dormant again later), so it puts phpList's future in the hands of unofficial unmaintained plugins.

Steps to reproduce
Run an IMAP utility. I've found the following to use IMAP functions - by order of importance:

  1. public_html/lists/admin/bounce.php - processing bounces
  2. public_html/lists/admin/processbounces.php - processing bounces
  3. public_html/lists/admin/import3.php - not sure what uses it
  4. public_html/lists/admin/readtestmail.php - not sure what uses it
  5. public_html/lists/admin/PHPMailer/class.phpmailer.php - not sure what uses it
  6. public_html/lists/admin/PHPMailer6/src/PHPMailer.php - not sure what uses it

Required outcome
The utility runs.

Actual result
Get an error.

@phpListDockerBot
Copy link
Contributor

This issue has been mentioned on phpList Discuss. There might be relevant details there:

https://discuss.phplist.org/t/help-softaculous-blocks-phplist/9961/4

@michield michield added the 3.7.x PRs for 3.7 label Jan 18, 2025
@bramley
Copy link
Contributor

bramley commented Jan 18, 2025

@lwcorp

Then one's only hope is to write in the forum and hope the plugin's author will notice.

No, you just raise an issue on the plugin's GitHub repository https://github.com/bramley/phplist-plugin-imap2

Either way, neither of these plugins was updated in years, so it puts phpList's future in the hands of unofficial unmaintained plugins.

They are not "unmaintained", there just hasn't been a need to amend either recently.

@lwcorp
Copy link
Contributor Author

lwcorp commented Jan 19, 2025

Done, issues raised, thanks!

Nevertheless, I still think it's a bit risky to rely a whole program on an unofficial external plugin, especially since it requires manual changes to the core (although one of my raised issues can fix that part).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.7.x PRs for 3.7
Projects
None yet
Development

No branches or pull requests

4 participants