I have been wandering around optimizing PHPList to speed up the overall throughput. I have read other posts and all the great feedback in regard to the speed optimization, and I understand there are several factors involved including but not limited to I/O, Database, Network speed, DNS, … but I want to turn the focus on PHPList itself and explore the possibility of certain obvious improvements that will help the overall performance and speed of sending emails even further.
My assumption here is that all the other factors that contribute to the overall speed have been taken care of to the extent possible, given the environment and the options available on the server; hence the idea is to push the boundaries even further by leveraging code/logic improvements in PHPList itself. As I am not directly involved in PHPList’s code base contribution and I believe other capable candidates may become interested in this topic, I decided to outline what might be a potential of an improvement.
I wonder if PHPList is already or can be tuned/adjust in regard to its logic to use the capability of PHPMailer’s SMTPKeepAlive option. It seems like PHPList’s implementation and usage of PHPMaile is very linear where it opens one SMPT connection per email that it is going to process and send out. This is a big overhead to the process as a whole.
It would be great to benefit of opening one SMTP connection and loop through some limited (or without a limit) of users/emails to process and send out the email. The documentation of PHPMailer itself outlines certain optimization points that can be – probably – used within PHPList logic. It even points to an actual example of such a use case to improve and enhance the overall speed by using SMTPKeepAlive in this example.
If PHPList already has this capability and my understanding of the current logic is incorrect, I would appreciate if someone will direct me to the correct configuration to achieve this, unless it is doing the same out of the box.