We are having heavy problems with our installation of phpList.
It tends to send out a large amount of emails, but when it comes to an email address which does not exist, it kind of hangs up and keeps circling through all wrong email addresses trying to send thousands of times.
In the log it says “Could not instantiate mail function”, when running on php mailer, or “mailbox unavailable invalid DNS MX or A/AAAA resource record”, when running on SMTP. For some reason this is not handled by bounce management, but blocking the system. Now, it is sending with 1 mail every 80 seconds (and going slower) instead of 3,500 every hour, which would be normal.
I would be happy, if anyone could give me an idea, where this is coming from.
The ‘could not instantiate mail function’ means that phpList cannot connect to the mail server, and the ‘invalid DNS…’ means that there is not a mail server configured for the domain of the email recipient’s email address.
I’ve seen the first case when hosting companies disable the mail service on your vps.
For the second error, you would want to blacklist that email address so that the server doesn’t keep trying to send a message to them.
Thanks for your email!
I read about the meaning of “Could not instantiate mail function”, but this can not be the reason. Because the system sends out 10,000 email before starting to make problems.
I can blacklist this address, but it’s some 350 email addresses, and I can’t blacklist all of them. I thought, phpList would blacklist bounced emails automatically? And isn’t this kind of error kind of a bounce? I’m puzzled…
If you are using phpList in a VPS hosted by someone like GoDaddy, etc… then they can turn off the mail function because they see two many bounces, or you have exceeded your send limits etc.
I’ve seen phpList get stuck on an email that it cannot send, my suggestion is to look at the system log, figure out what the email address is that is causing the problem, and blacklist that email address.
Today we sent out another newsletter with a little over 2,700 recipients. 56 of these were bounced with the message: “SMTP Error: The following recipients failed: (email address): Requested action not taken: mailbox unavailable invalid DNS MX or A/AAAA resource record”. This keeps circling.
I set up a bounce rule with that (expression: “* invalid DNS MX *”, Action: “Add email address to the do-not-send-list and delete bounce”), but for some reason which I don’t understand, this rule is constantly being ignored. Checking bounce rules says: “0 bounce matched current active rules”
I don’t get it anymore…
You don’t need to use the asterisks… change the rule text to:
invalid DNS MX
these are regular expressions, so it will search the bounced email for the exact text you put in there… in your case, it’s looking for the asterisks also.
Regular expressions are a bit of an arcane science… powerful, can do almost anything, you need to know exactly how they work. If you want to understand them, a couple of good programs are regex buddy, and textpipe pro.
For the purposes of phpList and bounce rules, I just put the text I want to match in the rule. It’s the easiest way to do it.
Thank you for your reply!
Unfortunately this isn’t the solution, as I tested with and without asterisks. First I had it without, then with.
I just restarted the process, and it was finished with an error message, that the attachment was not found (although it is unchanged since Friday). The 56 bounced emails are still not marked as to be on the blacklist.
Do you know, how PHPList sends out email? Let’s say, I have a stack 10,000 email addresses. 9,000 work as they should.
Then I have 300 wrong email addresses. Will PHPList get stuck with this stack (as it is bigger than the batch size) and will constantly try to send the wrong emails, or does it skip this batch and move to the next (to return later)?
I’m not sure how phpList exactly sends out emails. I have seen it go through a whole list, and get stuck on one or two at the end, when I looked at the address directly in the database, it had some invalid characters in it. The solution for me was to delete that address from the database and the list.
That’s also my impression (on a bigger level): It got stuck on some point to the end. When I deleted the respective addresses, it went through.