Я бы не рекомендовал отправлять почту с помощью шаблона - поместите ссылку в шаблон и вызовите действие для отправки почты ... вы можете отправить с модели, хотя, опять же, я бы не рекомендовал использовать sfContext::getInstance()
Внутри модели действительно плохая практика, поскольку она заставляет модельный класс полагаться на контекст. Итак, ваш модельный класс не может быть модульно протестирован, так как для его работы нужен контекст ...
Для этого вам нужен экземпляр текущего sfContext ... я бы предложил передать его в качестве параметра при создании модели