rename function and vars; move fix to common mail sending function
authorJon Goldberg <jon@megaphonetech.com>
Sun, 6 Jan 2019 21:02:55 +0000 (16:02 -0500)
committerJon Goldberg <jon@megaphonetech.com>
Sun, 6 Jan 2019 21:02:55 +0000 (16:02 -0500)
CRM/Contact/Form/Task/EmailCommon.php
CRM/Core/BAO/MessageTemplate.php
CRM/Member/Form/MembershipRenewal.php
CRM/Utils/Mail.php

index 1dd47fcc5c520c19a9aff85a5ee6c788422f8599..bc9f59326fecaad9b1bc6536d96ecc2522cd25d7 100644 (file)
@@ -400,7 +400,7 @@ class CRM_Contact_Form_Task_EmailCommon {
     // dev/core#357 User Emails are keyed by their id so that the Signature is able to be added
     // If we have had a contact email used here the value returned from the line above will be the
     // numerical key where as $from for use in the sendEmail in Activity needs to be of format of "To Name" <toemailaddress>
-    $from = CRM_Utils_Mail::mailboxHeader($from);
+    $from = CRM_Utils_Mail::formatFromAddress($from);
     $subject = $formValues['subject'];
 
     // CRM-13378: Append CC and BCC information at the end of Activity Details and format cc and bcc fields
index e006f463db8c0346c96089cf3169687b275c8f9c..ff6813e7160c985f661e01acd9eb045e6c2c9321 100644 (file)
@@ -389,6 +389,11 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate {
 
     CRM_Utils_Hook::alterMailParams($params, 'messageTemplate');
 
+    // Core#644 - handle contact ID passed as "From".
+    if (isset($params['from'])) {
+      $params['from'] = CRM_Utils_Mail::formatFromAddress($params['from']);
+    }
+
     if ((!$params['groupName'] ||
         !$params['valueName']
       ) &&
index 5ea6a46e9d7d99366a06aec3778eac0d3bf8bd2d..138576eb2f9ca9a299e627e84a7c4d5cb62181d7 100644 (file)
@@ -661,7 +661,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form {
 
     if (!empty($this->_params['send_receipt'])) {
 
-      $receiptFrom = CRM_Utils_Mail::mailboxHeader($this->_params['from_email_address']);
+      $receiptFrom = $this->_params['from_email_address'];
 
       if (!empty($this->_params['payment_instrument_id'])) {
         $paymentInstrument = CRM_Contribute_PseudoConstant::paymentInstrument();
index f3c018988014a3430dd4ebd2825e48243df25784..32a55757078d4388cf684d1d59ca7289f83e25e5 100644 (file)
@@ -582,20 +582,21 @@ class CRM_Utils_Mail {
    * If it's numeric, look up the display name and email of the corresponding
    * contact ID in RFC822 format.
    *
-   * @param string $header
+   * @param string $from
+   *   contact ID or formatted "From address", eg. 12 or "Fred Bloggs" <fred@example.org>
    * @return string
    *   The RFC822-formatted email header (display name + address)
    */
-  public static function mailboxHeader($header) {
-    if (is_numeric($header)) {
+  public static function formatFromAddress($from) {
+    if (is_numeric($from)) {
       $result = civicrm_api3('Email', 'get', [
-        'id' => $header,
+        'id' => $from,
         'return' => ['contact_id.display_name', 'email'],
         'sequential' => 1,
       ])['values'][0];
-      $header = '"' . $result['contact_id.display_name'] . '" <' . $result['email'] . '>';
+      $from = '"' . $result['contact_id.display_name'] . '" <' . $result['email'] . '>';
     }
-    return $header;
+    return $from;
   }
 
 }