Все что доступно фронтенду - доступно и злоумышленнику. То есть, любой пользователь вашего приложения может ваш ключ от мейлера украсть.
Решить это можно только своим бекендом. Который будет знать ключ, но не будет его показывать фронтенду. А так же сам будет ходить с этим ключом в апи мейлера. А фронтенд будет просто просить бекенд отправить письмо.
В таком варианте злоумышленник уже не сможет получить доступ к апи ключу, но сможет намеренно спамить ваш бекенд чтобы он отправлял письма. На уровне бекенд можно вставить ещё заборы: например, не давать отправлять больше одного письма на один адрес.
Так же, по опыту, process.env в фронтовых приложениях не самая очевидная штука. Лучше избегать его использования. Это объект с переменными процесса. Но если приложение работает в браузере, то там нет окружения и процесса и этих переменных.
Такой подход оправдан в бекенде, где ты сам контролируешь где и в каких условиях приложение будет работать.
Конфиги клиентского приложения лучше получать с бекенда. А там их уже можно и в .env хранить