Changing Drupal's default email notification on password reset
Pop to http://www.mysite.com/admin/user/settings, you can edit the subject and body for the email under the "Password Recovery Email" fieldset.

To do this programatically you can call _user_mail_notify() with the password_reset op parameter:

_user_mail_notify('password_reset', $account);


You can generate a one-time login link using the user_pass_reset_url() function:

$url = user_pass_reset_url($account);