From 8f09504306bde5d03e67590bd965fa21a9b1e308 Mon Sep 17 00:00:00 2001 From: pdontthink Date: Fri, 9 Jan 2015 07:24:26 +0000 Subject: [PATCH] Make sure the correct identity is used for list command mailto actions --- .../plugins/listcommands/functions.php | 23 +++++++++++++++++-- .../plugins/listcommands/mailout.php | 2 ++ .../templates/default/mailout.tpl | 6 +++-- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/trunk/squirrelmail/plugins/listcommands/functions.php b/trunk/squirrelmail/plugins/listcommands/functions.php index 6c526c2a49ff4e72a6aa03293cb85ca8dea6bd07..63fa24c6acb0f76c0117e29ea88b3ad05d297200 100644 --- a/trunk/squirrelmail/plugins/listcommands/functions.php +++ b/trunk/squirrelmail/plugins/listcommands/functions.php @@ -90,20 +90,39 @@ function plugin_listcommands_menu_do() { if ($proto == 'mailto') { + $identity = ''; + if (($cmd == 'post') || ($cmd == 'owner')) { $url = 'src/compose.php?'. (isset($startMessage)?'startMessage='.$startMessage.'&':''); } else { $url = "plugins/listcommands/mailout.php?action=$cmd&"; + + // try to find which identity the mail should come from + include_once(SM_PATH . 'functions/identity.php'); + $idents = get_identities(); + // ripped from src/compose.php + $identities = array(); + if (count($idents) > 1) { + foreach($idents as $nr=>$data) { + $enc_from_name = '"'.$data['full_name'].'" <'. $data['email_address'].'>'; + $identities[] = $enc_from_name; + } + + $identity_match = $message->rfc822_header->findAddress($identities); + if ($identity_match !== FALSE) { + $identity = $identity_match; + } + } } // if things like subject are given, peel them off and give // them to src/compose.php as is (not encoded) if (strpos($act, '?') > 0) { list($act, $parameters) = explode('?', $act, 2); - $parameters = '&' . $parameters; + $parameters = '&identity=' . $identity . '&' . $parameters; } else { - $parameters = ''; + $parameters = '&identity=' . $identity; } $url .= 'send_to=' . urlencode($act) . $parameters; diff --git a/trunk/squirrelmail/plugins/listcommands/mailout.php b/trunk/squirrelmail/plugins/listcommands/mailout.php index c94d875fc733dfd4abf2f97fd85ab90ac412db36..0ef95076c2795e6fb5ee0c43e9d8c823d24c0868 100644 --- a/trunk/squirrelmail/plugins/listcommands/mailout.php +++ b/trunk/squirrelmail/plugins/listcommands/mailout.php @@ -26,6 +26,7 @@ sqgetGlobalVar('send_to', $send_to, SQ_GET); sqgetGlobalVar('subject', $subject, SQ_GET); sqgetGlobalVar('body', $body, SQ_GET); sqgetGlobalVar('action', $action, SQ_GET); +sqgetGlobalVar('identity', $identity, SQ_GET); displayPageHeader($color, $mailbox); @@ -58,6 +59,7 @@ $oTemplate->assign('subject', $subject); $oTemplate->assign('body', $body); $oTemplate->assign('mailbox', $mailbox); $oTemplate->assign('idents', $idents); +$oTemplate->assign('identity', $identity); $oTemplate->display('plugins/listcommands/mailout.tpl'); $oTemplate->display('footer.tpl'); diff --git a/trunk/squirrelmail/plugins/listcommands/templates/default/mailout.tpl b/trunk/squirrelmail/plugins/listcommands/templates/default/mailout.tpl index 2aaa236f134915dbcf6ea4e2091e86bacf1f9354..b6ec5888930160691c9b84010d10be66c96450a2 100644 --- a/trunk/squirrelmail/plugins/listcommands/templates/default/mailout.tpl +++ b/trunk/squirrelmail/plugins/listcommands/templates/default/mailout.tpl @@ -41,8 +41,10 @@ extract($t); echo '