function sendNewPasswordRequest($user_guid)
{
$user_guid = (int) $user_guid;
$user = _elgg_services()->entityTable->get($user_guid);
if (!$user instanceof \ElggUser) {
return false;
}
// generate code
$code = generate_random_cleartext_password();
$user->setPrivateSetting('passwd_conf_code', $code);
$user->setPrivateSetting('passwd_conf_time', time());
// generate link
$link = _elgg_services()->config->getSiteUrl() . "changepassword?u={$user_guid}&c={$code}";
$link = _elgg_services()->urlSigner->sign($link, '+1 day');
// generate email
$ip_address = _elgg_services()->request->getClientIp();
$message = _elgg_services()->translator->translate('email:changereq:body', array($user->name, $ip_address, $link), $user->language);
$subject = _elgg_services()->translator->translate('email:changereq:subject', array(), $user->language);
$params = ['action' => 'requestnewpassword', 'object' => $user, 'ip_address' => $ip_address, 'link' => $link];
return notify_user($user->guid, elgg_get_site_entity()->guid, $subject, $message, $params, 'email');
}