Last modified: 2011-02-05 22:12:32 UTC
If the date.timezone environment variable is not set in php.ini then when sending a confirmation email, the following error can be generated: "Could not send confirmation mail. Check address for invalid characters." The email message is still sent. This is because the php mail() fuction will return a warning when the date.timezone environment variable is not set. The UserMailer Function in UserMailer.php returns this non-empty warning string. In User.php the function sendMail incorrectly interprets this non-empty string as a failure. This then propagates up to the function sendConfirmationMail in User.php and finally back to function showRequestForm in SpecialConfirmemail.php, where the message confirmemail_sendfailed or "Could not send confirmation mail. Check address for invalid characters." is displayed. Suggestions: Change the mailing code to recognize this warning and display an appropriate warning. Add a check to the configuration code (config/index.php) to check for the existence of the date.timezone environment variable.
Since PHP requires the timezone to be set now, this should be considered fixed.