The forgotten password reset email is triggered in DefaultCustomerAccountService.forgottenPassword (you find that in commerceservicesserver.jar) in the following way:
getEventService().publishEvent(initializeEvent(new ForgottenPwdEvent(token), customerModel));
And then there is a ForgottenPasswordEventListener.java in yacceleratorcore that does this:
@Override
protected void onSiteEvent(final ForgottenPwdEvent event)
{
final ForgottenPasswordProcessModel forgottenPasswordProcessModel = (ForgottenPasswordProcessModel) getBusinessProcessService()
.createProcess("forgottenPassword-" + event.getCustomer().getUid() + "-" + System.currentTimeMillis(),
"forgottenPasswordEmailProcess");
forgottenPasswordProcessModel.setSite(event.getSite());
forgottenPasswordProcessModel.setCustomer(event.getCustomer());
forgottenPasswordProcessModel.setToken(event.getToken());
forgottenPasswordProcessModel.setLanguage(event.getLanguage());
forgottenPasswordProcessModel.setCurrency(event.getCurrency());
forgottenPasswordProcessModel.setStore(event.getBaseStore());
getModelService().save(forgottenPasswordProcessModel);
getBusinessProcessService().startProcess(forgottenPasswordProcessModel);
}
So a business process it launched to create the forgotten password email, to send it and then to remove it from the queue. Just track down from here (in the process xml and in the bean xml files) what happens next and you know what to do.