Add support for checking misconfiguration of the PHP mail function
Some hosts do perform intentional misconfiguration of the mail function, causing it not to work. When the mail function is misconfigured, we can still access and execute the mail function from within the codebase, but we get an error. There’s no accurate way to know the PHP mail function is misconfigured. Unless we execute the function with all the proper parameters and check the exception error message against this error `Could not instantiate mail function.` MAILPOET-4760
This commit is contained in:
committed by
Aschepikov
parent
99d0eede80
commit
0bd627d3b1
@ -22,6 +22,7 @@ use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Settings\TrackingConfig;
|
||||
use MailPoet\Statistics\StatisticsOpensRepository;
|
||||
use MailPoet\Subscribers\SubscribersCountsController;
|
||||
use MailPoet\Util\Notices\DisabledMailFunctionNotice;
|
||||
use MailPoet\WooCommerce\TransactionalEmails;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
use MailPoetVendor\Carbon\Carbon;
|
||||
@ -147,6 +148,17 @@ class Settings extends APIEndpoint {
|
||||
$this->messageController->updateSuccessMessages();
|
||||
}
|
||||
|
||||
$sendingMethodSet = $settings['mta']['method'] ?? null;
|
||||
if ($sendingMethodSet === 'PHPMail') {
|
||||
// check for valid mail function
|
||||
$this->settings->set(DisabledMailFunctionNotice::QUEUE_DISABLED_MAIL_FUNCTION_CHECK, true);
|
||||
} else {
|
||||
// when the user switch to a new sending method
|
||||
// do not display the DisabledMailFunctionNotice
|
||||
$this->settings->set(DisabledMailFunctionNotice::QUEUE_DISABLED_MAIL_FUNCTION_CHECK, false);
|
||||
$this->settings->set(DisabledMailFunctionNotice::OPTION_NAME, false); // do not display notice
|
||||
}
|
||||
|
||||
// Tracking and re-engagement Emails
|
||||
$meta['showNotice'] = false;
|
||||
if ($oldSettings['tracking'] !== $this->settings->get('tracking')) {
|
||||
|
Reference in New Issue
Block a user