MLF "forgot password" doesn't work for me or anyone else. I'm not sure it ever did work, or it worked a while and then decided to stop working.
Running 2.4.21 [with] PHP 7.3.
It's not the latest version but that should make no difference for the current problem.
Both access log and error log are turned ON, yet I only see the one GET request in the access log and nothing in the error log when I attempt the forgot password function.
To bring some light into it. In the error log you'll find (in the context of the forum script) only web server and PHP errors. That's important to understand the way it works.
First: The script does not send e-mails directly to their recipients. The PHP function
mail, that is utilised by the forum script, sends the provided e-mail to an e-mail handler, that is configured on the web server and in the PHP configuration (commonly in the
php.ini). If there is no e-mail handler configured, the function
mail returns the boolean
false. Because that's not an error in itself, it get's not notified in the error log.
I checked NFS's support forum. The admin guys there basically point the finger back at invalid headers in the email or exceeding the spam limits.
That's actual a common problem. Many providers demand the use of dedicated program parameters or e-mail headers. In the case of the program parameter you can provide one in the advanced settings (setting
mail_parameter). Often the providers want's to see the parameter
-f with a valid e-mail address of the senders domain (for example
-f email@example.com). You have to check yourself, how this is handled at NFS.
In the case of e-mail headers these have to be provided in the function
my_mail before the latest line, that adds a header (in MLF version 2.4.21 this is line #2331). You would have to add something like this:
$headers .= "Header-Name: Header-Value" . $mail_header_separator;
But (as far I remember) we never saw the need of such a change especially for a specific hosting provider here in the support forum. The need of the program parameter in contrast was asked for a few (if not to say several) times.
(Apparently I am at least getting the PHP mail() or whatever function to be called because I see the quota of sendable emails increment in my website control panel on NFS every time I attempt a forgot password.)
What does this counter count? The (unsuccessfully?) calls of
mail to transfer an e-mail to the systems e-mail handler or the shipping of e-mails by this e-mail handler?
I'm attempting a forgot password using a standard free Gmail address as the destination, and spam, trash and all folders on that account never show anything received.
O.k. You have to assume, that the e-mails never reached their destination. But because this seems to be the case in every case, you'll have furthermore to assume, that the e-mails are not shipped at all.
I'm flying totally blind. NFS's logging is crap, doesn't show anything. I don't know the templating scheme of MLF at all and the source code is a mystery to me. I have no diagnostic tools whatsoever.
Please investigate in a first step, if your hosting provider demands a program parameter or an e-mail header. Often you'll find those information in a FAQ, a manual or something similar.