diff --git a/index.php b/index.php
index ec70b9f..0ffa33c 100755
--- a/index.php
+++ b/index.php
@@ -27,7 +27,7 @@
 $TEMPLATE = template_path();
 
 
-function send_confirmation_email(string $mail, object $smtp, string $url)
+function send_confirmation_email(string $mail, object $smtp, string $url, User $user)
 {
     include 'config.php';
     $TEMPLATE = template_path();
@@ -35,8 +35,8 @@
 
     send_mail($mail, $smtp, (object) [
         "subject" => $MAIL_TEMPLATE->subject,
-        "text"    => str_replace("{{url}}", $url, $MAIL_TEMPLATE->text),
-        "html"    => str_replace("{{url}}", $url, $MAIL_TEMPLATE->html)
+        "text"    => replace_all_user_variables($MAIL_TEMPLATE->text, $user, $url),
+        "html"    => replace_all_user_variables($MAIL_TEMPLATE->html, $user, $url)
     ]);
 }
 
@@ -118,6 +118,15 @@
     return $error;
 }
 
+function backup_user_in_session($user)
+{
+    $_SESSION['username'] = $user->user_name;
+    $_SESSION['first_name'] = $user->first_name;
+    $_SESSION['last_name'] = $user->last_name;
+    $_SESSION['email'] = $user->email;
+    $_SESSION['organization'] = $user->organization;
+}
+
 function approve_request($user)
 {
     include 'config.php';
@@ -136,10 +145,10 @@
         $smtp = $FALLBACK_SMTP;
     else
         $smtp = $SMTP;
-    send_confirmation_email($user->email, $smtp, $url);
+    send_confirmation_email($user->email, $smtp, $url, $user);
     $_SESSION['resend'] = generateRandomString(12);
     $_SESSION['token'] = $token;
-    $_SESSION['email'] = $user->email;
+    backup_user_in_session($user);
     $TEMPLATE = template_path();
     include $TEMPLATE . "confirm_your_email.htm";
 }
@@ -288,19 +297,22 @@
         case "resend":
             if (isset($_GET['token']) && isset($_SESSION['resend']) && $_GET['token'] == $_SESSION['resend']) {
                 include $TEMPLATE . "resend_mail.htm";
+                $user = new User($_SESSION["username"], $_SESSION["first_name"], $_SESSION["last_name"], $_SESSION["email"], "", $_SESSION["organization"]);
                 $token = $_SESSION['token'];
                 $url = $BASE_URL . "?type=confirmation&token=" . $token;
                 $smtp = $FALLBACK_SMTP;
                 $address = $_SESSION["email"];
                 if (isset($_SESSION['recover'])) {
                     $url = $BASE_URL . "?type=password_change&token=" . $token;
-                    send_recovery_email($address, $smtp, $url);
+                    send_recovery_email($address, $smtp, $url, $user);
                     unset($_SESSION['recover']);
                 } else
-                    send_confirmation_email($address, $smtp, $url);
+                    send_confirmation_email($address, $smtp, $url, $user);
                 unset($_SESSION['resend']);
                 unset($_SESSION['token']);
-                unset($_SESSION['email']);
+                # unset($_SESSION['email']);
+            } else {
+                echo "<h2>A second email has already been sent to " . $_SESSION['email'] .".</h2>";
             }
             break;
 
