Недавно столкнулся с похожей проблемой конкретно при отправке через gmail, оказалось, требуется предоставить доступ в настройках gmail для неизвестного приложения, в данном случае вашего проекта на symfony.
Не мешайте клиентскую часть с админской. Еще можно два бандла создать один будет админский функционал выполнять другой клиентский. Вариантов много, выбирете для себя наиболее оптимальный и удобный.
Всем спасибо. После недели проб и ошибок, понял что использовать Sonata Admin Bundle в качестве быстрой админки очень гуд, но для кабинета пользователя или еще какой-нибудь гибкой вещи Sonata Admin Bundle не подходит.
Используйте queryBuilder в Связке с теми Entity которые вы получили.
Большую логику выносите в сервисы. Для сложных всяких запросов создайте Custom Repositories и обращайтесь к ним в контроллере через более простые вызовы. Для нативных запросов лучше тогда вообще Doctrine не использовать, а использовать php pdo.