The first step would be to switch to the default Magento template, and then see if the password reset works. If so, then this is most likely a problem specific to your template.
If it still does not work, it may be a problem with the local settings of the email server.
For email questions, I recommend installing SMTP Pro from ASchroder.
http://www.magentocommerce.com/magento-connect/aschroder-com-smtp-pro-email-free-and-easy-magento-emailing-for-smtp-gmail-or-google-apps-email.html
After installation:
go to System > Configuration > System (under Advanced)
Open SMTP Pro Email General Settings
For Choose extension option select SMTP
Set Log all messages to Yes
Expand the SMTP Pro Email SMTP Settings section.
Set Authentication to None and leave Username and Password blank (it is assumed that the Apache user running Magento allows sending email through SMTP. If not, you must enter the correct SMTP and enter the settings for this area.
Set Host to localhost and Port to 25
Save the configuration and click Run Self Test in the SMTP Pro Email General Settings section.
If the test succeeds, the reset passwords should now work. If the user has not received the email, he can be blocked by their incoming mail server or filtered into the spam folder. If you have access to your serverโs mail logs, you can find out if emails from Magento are accepted by the mail servers to which they are sent.
You can view the log of email messages sent from Magento under System > Tools > Email Log after this extension is enabled, and Log all messages in the setting is set to yes.
source share