login/mailpass: prefer full name to address user
[minimedit.git] / login / mailpass.inc.php
index 6138ceb2fd0d0c934ab8aac7fffddd6f15d20695..5edc29e524f4099a4067dd20d55cb8b23d3845e3 100644 (file)
@@ -14,6 +14,8 @@ function mailtoken($email)
 {
        $found = userbymail($email);
        if (!$found) return FALSE;
+       $user = new User("profile/$found");
+       if (empty($user)) return FALSE;
 
        $token = substr(sha1('$Random'.rand()), 0, 10);
        if (!file_put_contents("profile/$found/.token", $token))
@@ -22,7 +24,7 @@ function mailtoken($email)
        $sitename = $_SERVER['HTTP_HOST'];
        $sitelink = 'https://'.$sitename;
        $rep = [
-               '[[user]]' => $found,
+               '[[user]]' => $user->name ?: $found,
                '[[link]]' => "$sitelink/login/pass?token=$found:$token",
                '[[site]]' => $sitename,
        ];
@@ -31,8 +33,10 @@ function mailtoken($email)
        $mailbody = str_replace(array_keys($rep), array_values($rep), $mailbody);
        if (!$mailbody) throw new Exception('empty mail body');
        $mailsub = "Wachtwoord-reset voor $sitename";
+       $mailhead = "From: $sitename <info@$sitename>";
+       $rcpt = "$found <$email>";
 
-       return mail($email, $mailsub, $mailbody);
+       return mail($rcpt, $mailsub, $mailbody, $mailhead);
        return TRUE;
 }