Log details of mailing error and don't display details to end user
authorMatthew Wire <mjw@mjwconsult.co.uk>
Wed, 18 Aug 2021 13:46:38 +0000 (14:46 +0100)
committerMatthew Wire <mjw@mjwconsult.co.uk>
Wed, 18 Aug 2021 20:49:25 +0000 (21:49 +0100)
CRM/Utils/Mail.php
tests/phpunit/CRM/Utils/MailTest.php

index 9a21b4b9de5ae0977fa962990fca0486c72d453e..060ff42c9f32bf98653cc4b2a028db2b4b009790 100644 (file)
@@ -305,14 +305,16 @@ class CRM_Utils_Mail {
         $result = $mailer->send($to, $headers, $message);
       }
       catch (Exception $e) {
-        CRM_Core_Session::setStatus($e->getMessage(), ts('Mailing Error'), 'error');
+        \Civi::log()->error('Mailing error: ' . $e->getMessage());
+        CRM_Core_Session::setStatus(ts('Unable to send email. Please report this message to the site administrator'), ts('Mailing Error'), 'error');
         return FALSE;
       }
       if (is_a($result, 'PEAR_Error')) {
         $message = self::errorMessage($mailer, $result);
         // append error message in case multiple calls are being made to
         // this method in the course of sending a batch of messages.
-        CRM_Core_Session::setStatus($message, ts('Mailing Error'), 'error');
+        \Civi::log()->error('Mailing error: ' . $message);
+        CRM_Core_Session::setStatus(ts('Unable to send email. Please report this message to the site administrator'), ts('Mailing Error'), 'error');
         return FALSE;
       }
       // CRM-10699
index a70cfc54364bf130acf7275382512daf7b9d7415..d1c620070372ecde79336ae996009a2d8c7d1802 100644 (file)
@@ -69,7 +69,7 @@ class CRM_Utils_MailTest extends CiviUnitTestCase {
     ]);
 
     $this->assertFalse(CRM_Utils_Mail::send($params));
-    $this->assertEquals('You shall not pass', CRM_Core_Session::singleton()->getStatus()[0]['text']);
+    $this->assertEquals('Unable to send email. Please report this message to the site administrator', CRM_Core_Session::singleton()->getStatus()[0]['text']);
   }
 
   /**