Вы можете использовать наблюдатель файловой системы , чтобы сделать это. Обязательно прочитайте документацию, чтобы узнать о различных причудах.
Что касается дизайна среды выполнения, вы могли бы реализовать службу Windows, но я бы сначала включил свою функциональность в качестве консольного приложения и переключился на службу, когда подумал, что есть причина.
Вы можете разделить компоненты в очередь событий, что также означает переход от 1 компонента времени выполнения к трем: 1. файловый монитор для генерации событий, 2. события в очереди в базе данных и 3. сервис электронной почты для их использования.
Вариантов действительно много, потому что у вас есть все компоненты системы рабочего процесса. Я предлагаю сделать это как можно проще для того, что вам нужно производить в данный момент, и увеличивать сложность по мере роста спроса.