есть пара контроллеров из которых нужно отправлять практически одинаковые письма
Этого не должно быть в контроллерах. Для этого придумали сервисы.
Контроллеры должны быть максимально тупыми, их задача - работа с вводом/выводом. То есть мы берем реквест, понимаем что нужно сделать и говорим это сервисам. Те делают, отдают результат контроллеру, тот возвращает его пользователю.