From 870fb6d39111b4c1aef326b57794570e7e8aa55e Mon Sep 17 00:00:00 2001 From: fidian Date: Tue, 12 Jun 2001 21:29:42 +0000 Subject: [PATCH] * Added much better support for the mailto stuff git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@1413 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- src/login.php | 33 +++++++++++++++++++++++++++++++++ src/redirect.php | 3 ++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/login.php b/src/login.php index 4b7218e9..e48c691f 100644 --- a/src/login.php +++ b/src/login.php @@ -17,6 +17,39 @@ $rcptaddress = substr($emailaddress, 7); else $rcptaddress = $emailaddress; + + if (($pos = strpos($rcptaddress, '?')) !== false) + { + $a = substr($rcptaddress, $pos + 1); + $rcptaddress = substr($rcptaddress, 0, $pos); + $a = explode('=', $a, 2); + if (isset($a[1])) { + $name = urldecode($a[0]); + $val = urldecode($a[1]); + global $$name; + $$name = $val; + } + } + + // At this point, we have parsed a lot of the mailto stuff. Let's + // do the rest -- CC, BCC, Subject, Body + // Note: They can all be case insensitive + foreach ($GLOBALS as $k => $v) + { + $key = strtolower($k); + $value = urlencode($v); + if ($key == 'cc') + $rcptaddress .= '&send_to_cc=' . $value; + elseif ($key == 'bcc') + $rcptaddress .= '&send_to_bcc=' . $value; + elseif ($key == 'subject') + $rcptaddress .= '&subject=' . $value; + elseif ($key == 'body') + $rcptaddress .= '&body=' . $value; + } + + // Double-encode in this fashion to get past redirect.php properly + $rcptaddress = urlencode($rcptaddress); } include("../functions/strings.php"); diff --git a/src/redirect.php b/src/redirect.php index 22fd737c..12adb1c3 100644 --- a/src/redirect.php +++ b/src/redirect.php @@ -92,7 +92,8 @@ session_register ('just_logged_in'); if(isset($rcptemail)) - header("Location: webmail.php?right_frame=compose.php&rcptaddress=$rcptemail"); + header("Location: webmail.php?right_frame=compose.php&rcptaddress=" . + urlencode($rcptemail)); else header("Location: webmail.php"); ?> -- 2.25.1