private function sendEmailConfirmationLink($user)
{
$login = $user['login'];
$email = $user['email'];
// construct a password reset token from user information
$resetToken = $this->generatePasswordResetToken($user);
$confirmPasswordModule = $this->confirmPasswordModule;
$confirmPasswordAction = $this->confirmPasswordAction;
$ip = IP::getIpFromHeader();
$url = Url::getCurrentUrlWithoutQueryString() . "?module={$confirmPasswordModule}&action={$confirmPasswordAction}&login=" . urlencode($login) . "&resetToken=" . urlencode($resetToken);
// send email with new password
$mail = new Mail();
$mail->addTo($email, $login);
$mail->setSubject(Piwik::translate('Login_MailTopicPasswordChange'));
$bodyText = str_replace('\\n', "\n", sprintf(Piwik::translate('Login_MailPasswordChangeBody'), $login, $ip, $url)) . "\n";
$mail->setBodyText($bodyText);
$mail->setFrom($this->emailFromAddress, $this->emailFromName);
$replytoEmailName = Config::getInstance()->General['login_password_recovery_replyto_email_name'];
$replytoEmailAddress = Config::getInstance()->General['login_password_recovery_replyto_email_address'];
$mail->setReplyTo($replytoEmailAddress, $replytoEmailName);
@$mail->send();
}