Да, я бы порекомендовал создать сервис для отправки электронной почты.Вы можете создать интерфейс для взаимодействия со службой в том же проекте, что и модель домена, но обеспечить реализацию службы в отдельном проекте, чтобы не было жесткой зависимости между моделью и службой.Зависимость обратная - от сервиса к модели.Это также создает лучшую настройку для реализации модульных тестов, чтобы гарантировать, что ваша служба вызывается при непредвиденных обстоятельствах, так как теперь вы сможете смоделировать службу в своих модульных тестах.
Единственное, чтоОсталось сделать, чтобы убедиться, что ваш сервис внедряется каждый раз, когда создается один из этих типов объектов.Таким образом, вы отложите создание объекта либо в хранилище.Или, что еще лучше, используйте инфраструктуру внедрения зависимостей, чтобы разрешить зависимость для вас.