From 7c25281e3d81788b994b166c17efa622b9777eee Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Wed, 6 Sep 2023 17:42:44 +1200 Subject: [PATCH] Improve error handling by using civicrm_api3 not civicrm_api --- CRM/Utils/Mail/EmailProcessor.php | 20 ++++++-------------- CRM/Utils/Mail/Incoming.php | 6 ------ 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/CRM/Utils/Mail/EmailProcessor.php b/CRM/Utils/Mail/EmailProcessor.php index 7713fce399..ff30b5b44a 100644 --- a/CRM/Utils/Mail/EmailProcessor.php +++ b/CRM/Utils/Mail/EmailProcessor.php @@ -188,24 +188,17 @@ class CRM_Utils_Mail_EmailProcessor { // if its the activities that needs to be processed .. try { $mailParams = CRM_Utils_Mail_Incoming::parseMailingObject($mail, $createContact, FALSE, $emailFields); + $params = self::deprecated_activity_buildmailparams($mailParams, $dao); + $result = civicrm_api3('Activity', 'create', $params); } catch (Exception $e) { - echo $e->getMessage(); + echo "Failed Processing: {$mail->subject}. Reason: " . $e->getMessage() . "\n"; $store->markIgnored($key); continue; } - $params = self::deprecated_activity_buildmailparams($mailParams, $dao); - $result = civicrm_api('activity', 'create', $params); - - if ($result['is_error']) { - $matches = FALSE; - echo "Failed Processing: {$mail->subject}. Reason: {$result['error_message']}\n"; - } - else { - $matches = TRUE; - CRM_Utils_Hook::emailProcessor('activity', $params, $mail, $result); - echo "Processed as Activity: {$mail->subject}\n"; - } + $matches = TRUE; + CRM_Utils_Hook::emailProcessor('activity', $params, $mail, $result); + echo "Processed as Activity: {$mail->subject}\n"; } // if $matches is empty, this email is not CiviMail-bound @@ -478,7 +471,6 @@ class CRM_Utils_Mail_EmailProcessor { */ protected static function deprecated_activity_buildmailparams($result, $dao) { $params = []; - $params['version'] = 3; // if we don't cast to int (the dao gives a string), then the Inbound Email Activity 1.0 extension won't work, will be fixed in next version to use a non-strict comparison $params['activity_type_id'] = (int) $dao->activity_type_id; diff --git a/CRM/Utils/Mail/Incoming.php b/CRM/Utils/Mail/Incoming.php index 1a268c6fea..b6a446120d 100644 --- a/CRM/Utils/Mail/Incoming.php +++ b/CRM/Utils/Mail/Incoming.php @@ -296,12 +296,6 @@ class CRM_Utils_Mail_Incoming { */ public static function parseMailingObject(&$mail, $createContact = TRUE, $requireContact = TRUE, $emailFields = ['from', 'to', 'cc', 'bcc']) { - $config = CRM_Core_Config::singleton(); - - // get ready for collecting data about this email - // and put it in a standardized format - $params = ['is_error' => 0]; - // Sometimes $mail->from is unset because ezcMail didn't handle format // of From header. CRM-19215. if (!isset($mail->from)) { -- 2.25.1