Введение в проблему
Каждый из нас сталкивался с ситуацией, когда после регистрации на новом сайте или сервисе начинается поток спама на электронную почту. Это происходит потому, что наши реальные адреса электронной почты часто становятся доступны третьим лицам, либо из-за утечки данных, либо из-за продажи наших контактов рекламодателям. Обычные методы борьбы со спамом, такие как использование псевдонимов в Gmail или алиасов в Protonmail, не всегда эффективны и могут требовать оплачиваемых тарифных планов или доверия к третьим лицам.
Решение проблемы с помощью cPanel API
Однако, если у вас есть аккаунт на хостинге с поддержкой cPanel, вы уже имеете все необходимое для создания собственной системы защиты электронной почты от спама. cPanel предоставляет полный REST API, который включает в себя управление электронной почтой и перенаправления. Идея заключается в создании временных адресов электронной почты для каждого сервиса, которые автоматически перенаправляют письма на ваш реальный адрес электронной почты. Если начнется спам, вы можете легко отключить перенаправление, не暴ив свой основной адрес.
Архитектура решения
Для реализации этого решения было принято решение использовать Laravel как фреймворк для разработки веб-приложения, а также cPanel API для управления электронной почтой и перенаправлениями. Архитектура приложения была спроектирована с учетом принципов SOLID, которые обеспечивают разделение ответственности и тестирование отдельных компонентов. В частности, был создан интерфейс CpanelClientInterface, который определяет методы для взаимодействия с cPanel API, а также два его реализации: CpanelHttpClient для producción и FakeCpanelClient для тестирования.
Реализация и тестирование
Реализация приложения включала в себя создание контроллера EmailController, который зависит от интерфейса EmailProviderInterface, а также бизнес-логика, реализованная в классе CpanelService, который зависит от интерфейса CpanelClientInterface. Это позволяет легко заменить реализацию cPanel API на фейковую во время тестирования, не выполняя реальных HTTP-запросов. Такая архитектура обеспечивает легкое тестирование и поддержку приложения.
Итоги
Используя Laravel и cPanel API, можно создать эффективную систему защиты электронной почты от спама, которая позволяет создавать временные адреса электронной почты для каждого сервиса и легко отключать перенаправления, если начнется спам. Такое решение не только повышает безопасность, но и удобство использования электронной почты.