[wp-trac] [WordPress Trac] #37945: If from_email is not set and $_SERVER['SERVER_NAME'] is empty the from email address will be set to 'wordpress@' and thus is invalid
WordPress Trac
noreply at wordpress.org
Mon Sep 5 11:48:18 UTC 2016
#37945: If from_email is not set and $_SERVER['SERVER_NAME'] is empty the from
email address will be set to 'wordpress@' and thus is invalid
--------------------------+------------------------------
Reporter: BjornW | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Mail | Version: trunk
Severity: normal | Resolution:
Keywords: | Focuses:
--------------------------+------------------------------
Description changed by ocean90:
Old description:
> In some WordPress server setups the $_SERVER['SERVER_NAME'] may not have
> been setup, so $_SERVER['SERVER_NAME'] is empty.
>
> For example Nginx (see http://nginx.org/en/docs/http/server_names.html)
> will set the server name to empty if none is set in the configuration,
> but afaik it is also possible for Apache to set the ServerName to an
> empty string.
>
> If the from_email address is *also* NOT set this will cause PHPMailer to
> throw an exception complaining about an invalid address. This will cause
> an infamous white screen.
>
> In https://core.trac.wordpress.org/ticket/32702 this was also mentioned
> but @boonebgorges thought the test was to blame and fixed the test, but
> IMHO the test was correct and the code should be fixed.
>
> We need to check if the SERVER_NAME is empty or not. I've attached a
> patch in which I check to make sure SERVER_NAME is not empty and if it is
> empty it will resort to using the admin_email address instead. At least
> this mail address should be valid, although it might still fail to
> deliver the email sent due to using a different domain than the server
> WordPress is installed on.
>
> A much better option might be to allow the user to choose the from email
> address, but apparently this has been considered and at that moment
> considered a bad idea, see https://core.trac.wordpress.org/ticket/23365
New description:
In some WordPress server setups the `$_SERVER['SERVER_NAME']` may not have
been setup, so `$_SERVER['SERVER_NAME']` is empty.
For example Nginx (see http://nginx.org/en/docs/http/server_names.html)
will set the server name to empty if none is set in the configuration, but
afaik it is also possible for Apache to set the ServerName to an empty
string.
If the from_email address is *also* NOT set this will cause PHPMailer to
throw an exception complaining about an invalid address. This will cause
an infamous white screen.
In #32702 this was also mentioned but @boonebgorges thought the test was
to blame and fixed the test, but IMHO the test was correct and the code
should be fixed.
We need to check if the SERVER_NAME is empty or not. I've attached a patch
in which I check to make sure SERVER_NAME is not empty and if it is empty
it will resort to using the admin_email address instead. At least this
mail address should be valid, although it might still fail to deliver the
email sent due to using a different domain than the server WordPress is
installed on.
A much better option might be to allow the user to choose the from email
address, but apparently this has been considered and at that moment
considered a bad idea, see #23365.
--
--
Ticket URL: <https://core.trac.wordpress.org/ticket/37945#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list