/**
  * Implements authenticate().
  */
 public function authenticate(&$message, $mailbox)
 {
     list($fromaddress, ) = _mailhandler_get_fromaddress($message['header'], $mailbox);
     $uid = 0;
     if ($address = multiple_email_find_address($fromaddress)) {
         $uid = $address->uid;
     }
     return $uid;
 }
 public function authenticate(&$message, $mailbox)
 {
     list($fromaddress, $fromname) = _mailhandler_get_fromaddress($message['header'], $mailbox);
     if ($address = multiple_email_find_address($fromaddress)) {
         $message['authenticated_uid'] = $address->uid;
     } else {
         // Authentication failed. Try as anonymous.
         $message['authenticated_uid'] = 0;
     }
 }
/**
 * Merge specific account properties.
 *
 * @param $user_to_delete
 *   The full object of the user to be deleted.
 * @param $user_to_keep
 *   The full object of the user to be kept.
 * @param $review
 *   The array containing review data (as form elements).
 */
function hook_usermerge_merge_accounts($user_to_delete, $user_to_keep, $review) {
  // Example from multiple_email_usermerge_merge_accounts()

  $emails_to_keep = $review['multiple_email']['multiple_email']['options'];

  if ($emails_to_keep == 'merge') {
    $query = db_update('multiple_email')
      ->fields(array(
        'uid' => $user_to_keep->uid
      ))
      ->condition('uid', $user_to_delete->uid)
      ->execute();

    // Make sure $user_to_keep's primary email remains primary
    // Necessary because support for regular mail property is disabled by this extension
    multiple_email_make_primary(multiple_email_find_address($user_to_keep->mail));
  }
  else {
    $emails_to_delete = $emails_to_keep == 'user_to_keep' ? 'user_to_delete' : 'user_to_keep';
    $query_delete = db_delete('multiple_email')
      ->condition('uid', $$emails_to_delete->uid)
      ->execute();

    // This fires only if the emails to keep are those of the account to delete
    // If not, this would be redundant
    if ($emails_to_keep == 'user_to_delete') {
      $query_update = db_update('multiple_email')
        ->fields(array(
          'uid' => $user_to_keep->uid
        ))
        ->condition('uid', $$emails_to_keep->uid)
        ->execute();
    }

    // Make sure $emails_to_keep's primary email remains primary
    multiple_email_make_primary(multiple_email_find_address($$emails_to_keep->mail));
  }
}