Здравствуйте, столкнулся с необходимостью отправлять эмайл оповещение с минимальными действиями пользователя.
Ситуация такая : условно есть какое то поле в бд которое может изменяться само по себе (имитация датчика) , как только значение датчика температуры становится критическим пользователю на майл приходит письмо, мол зайдите на сайт, отправьте инструкции.
В идеале это должно выполняться без каких либо действий со стороны пользователя.
Я нашел 2 варианта
1)
https://o7planning.org/ru/11145/spring-email-tutorial с отправкой письма при переходе на какую то урлу (что было бы удобно учитывая секьюрный контекст спринга) тоесть для авторизированного пользователя мы всегда можем получить контекст, по которому в бд уже найдем самого пользователя и вытащим его майл, далее на этот майл отправим письмо .
Но тут, как видно пользователю нужно зайти на сайт, что не много не удовлетворяет требованию
2)
https://www.baeldung.com/spring-email простая инициализация отправки в компоненте, я так понимаю выполнится один раз, но если мы будем постоянно инициализировать этот бин, то может выполняться с некой периодичностью .
С такой задачей сталкиваюсь впервые и как я это вижу : во время работы приложения некий компонент непрерывно проходит по всем пользователям, у каждого пользователя вытаскивает датчики и у каждого датчика проверяет значение
отправляет письмо, если надо , как дошел до конца засыпает на какое то время и потом по новой. Но это звучит слегка дорого, приходится тратить кучу памяти на то чтоб вынимать это все + кучу времени чтобы доставать это все. В общем думаю это не лучшем образом отразится на производительности.
Но есть же сервисы которые способны отсылать почту без действий пользователя, вот и прошу объяснить по какому принципу они это делают, заранее спасибо