Hi,
You can copy some logic from Kentico. Depending on how and what you want you could look into the default template:
docs.kentico.com/.../Forgottenpassword-Passwordrecoveryemailtemplates
Where you can use the macro: {% ResetPasswordURL %}
From code looking at the logon-form Web Part (find it at CMSWebParts/Membership/Logon/LogonForm.ascx.cs)
you could use a version of the following:
AuthenticationHelper.SendPasswordRequest(ui, siteName, "USERLOGON", SettingsKeyInfoProvider.GetValue(siteName + ".CMSSendPasswordEmailsFrom"),
"Membership.PasswordExpired", null, AuthenticationHelper.GetResetPasswordUrl(siteName), returnUrl);
Where UI is the UserInfo which you can get UserInfo ui = UserInfoProvider.GetUserInfo("YourUserName");