Aleksander Machniak
2012-11-28 30cc01f89daea932d15a1a505d25b543913664ac
program/steps/mail/compose.inc
@@ -298,7 +298,6 @@
  $from_idx         = null;
  $found_idx        = null;
  $default_identity = 0; // default identity is always first on the list
  $return_path      = $MESSAGE->headers->others['return-path'];
  // Select identity
  foreach ($MESSAGE->identities as $idx => $ident) {
@@ -332,8 +331,8 @@
    $from_idx = $found_idx;
  }
  // Fallback using Return-Path
  if ($from_idx === null && $return_path) {
  // Try Return-Path
  if ($from_idx === null && ($return_path = $MESSAGE->headers->others['return-path'])) {
    foreach ($MESSAGE->identities as $idx => $ident) {
      if (strpos($return_path, str_replace('@', '=', $ident['email_ascii']).'@') !== false) {
        $from_idx = $idx;
@@ -342,6 +341,16 @@
    }
  }
  // Fallback using Delivered-To
  if ($from_idx === null && ($delivered_to = $MESSAGE->headers->others['delivered-to'])) {
    foreach ($MESSAGE->identities as $idx => $ident) {
      if (in_array($ident['email_ascii'], $delivered_to)) {
        $from_idx = $idx;
        break;
      }
    }
  }
  $ident   = $MESSAGE->identities[$from_idx !== null ? $from_idx : $default_identity];
  $from_id = $ident['identity_id'];