From f25fcbb2dd57a5e2076951252b818172eaabc435 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Fri, 8 Apr 2022 15:01:31 -0700 Subject: [PATCH] CiviMail - Fix validation error Steps to reproduce: - Disable Flexmailer - Use web UI - Create a new mailing - Fill out fields - Submit mailing - Observe inaccurate error - Mailing cannot be sent. There are missing or invalid fields (subject,name,from_name,from_email,body). See also: https://civicrm.stackexchange.com/questions/41654/after-upgrade-to-civicrm-5-48-0-all-submissions-say-mailing-cannot-be-sent-th --- CRM/Mailing/BAO/Mailing.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/CRM/Mailing/BAO/Mailing.php b/CRM/Mailing/BAO/Mailing.php index 5b59f53294..83ddc6dad5 100644 --- a/CRM/Mailing/BAO/Mailing.php +++ b/CRM/Mailing/BAO/Mailing.php @@ -1654,12 +1654,22 @@ ORDER BY civicrm_email.is_bulkmail DESC /** * @deprecated * This is used by CiviMail but will be made redundant by FlexMailer. - * @param CRM_Mailing_DAO_Mailing $mailing + * @param CRM_Mailing_DAO_Mailing|array $mailing * The mailing which may or may not be sendable. * @return array * List of error messages. */ public static function checkSendable($mailing) { + if (is_array($mailing)) { + $params = $mailing; + $mailing = new \CRM_Mailing_BAO_Mailing(); + $mailing->id = $params['id'] ?? NULL; + if ($mailing->id) { + $mailing->find(TRUE); + } + $mailing->copyValues($params); + } + $errors = []; foreach (['subject', 'name', 'from_name', 'from_email'] as $field) { if (empty($mailing->{$field})) { -- 2.25.1