Как обрабатывать конфигурацию почтового сервера весной в многопользовательской среде?

#spring-boot #jakarta-mail #multi-tenant

#пружинный ботинок #джакарта-почта #многопользовательский #весенняя загрузка

Вопрос:

Я конвертирую обычное рабочее приложение в многопользовательское приложение. В настоящее время у меня настроен почтовый сервер, и я не могу найти способ настроить несколько почтовых серверов для каждого клиента.

Я должен иметь возможность добавлять почтовый сервер «на лету» при добавлении нового клиента.

Пожалуйста, помогите.

Ответ №1:

Мы можем придумать 2 варианта

Вариант 1

Вы можете создать таблицу с именем as TenantSettings , в которой вы можете хранить пары ключ-значение данных. Столбец значений представляет собой прямые данные или json или любой формат.

В этом случае вы можете хранить данные в следующем формате, или мы можем хранить данные в паре ключ-значение, такой как SMTPServer, smtpPort и т.д..

 ----------------------------------------------------------------------------------------------------------------
Id      TenantId    Setting     Value       CreatedBy       CreatedOn ......
----------------------------------------------------------------------------------------------------------------
1       123     SMTPConfig  {SMTPServer..}
----------------------------------------------------------------------------------------------------------------
2       124     SMTPConfig  {SMTPServer..}
----------------------------------------------------------------------------------------------------------------
  

Вариант 2

Мы можем сохранить настройки, относящиеся к конкретному клиенту, внутри самой базы данных, относящейся к конкретному клиенту, если у вас есть база данных, ориентированная на клиента, чтобы после идентификации клиента мы могли загрузить все настройки для клиента и использовать везде, где требуется.

Если вы можете поделиться более подробной информацией о ваших текущих моделях, мы сможем разработать правильный подход.

Комментарии:

1. Я планирую использовать главную базу данных для хранения информации, но меня беспокоят оба решения, представленные выше, должны ли мы создавать объект java mail sender каждый раз, когда мне нужно будет отправлять почту?