فهرست منبع

add configs for mail settings

Yuki Takei 1 سال پیش
والد
کامیت
7386b48891
2فایلهای تغییر یافته به همراه39 افزوده شده و 2 حذف شده
  1. 35 0
      apps/app/src/server/service/config-manager/config-definition.ts
  2. 4 2
      apps/app/src/server/service/mail.ts

+ 35 - 0
apps/app/src/server/service/config-manager/config-definition.ts

@@ -187,6 +187,16 @@ export const CONFIG_KEYS = [
   // GridFS Settings
   'gridfs:totalLimit',
 
+  // Mail Settings
+  'mail:from',
+  'mail:transmissionMethod',
+  'mail:smtpHost',
+  'mail:smtpPort',
+  'mail:smtpUser',
+  'mail:smtpPassword',
+  'mail:sesSecretAccessKey',
+  'mail:sesAccessKeyId',
+
   // Customize Settings
   'customize:isEmailPublishedForNewUser',
   'customize:css',
@@ -872,6 +882,31 @@ export const CONFIG_DEFINITIONS = {
     defaultValue: undefined,
   }),
 
+  // Mail Settings
+  'mail:from': defineConfig<string | undefined>({
+    defaultValue: undefined,
+  }),
+  'mail:transmissionMethod': defineConfig<'smtp' | 'ses' | undefined>({
+    defaultValue: undefined,
+  }),
+  'mail:smtpHost': defineConfig<string | undefined>({
+    defaultValue: undefined,
+  }),
+  'mail:smtpPort': defineConfig<string | undefined>({
+    defaultValue: undefined,
+  }),
+  'mail:smtpUser': defineConfig<string | undefined>({
+    defaultValue: undefined,
+  }),
+  'mail:smtpPassword': defineConfig<string | undefined>({
+    defaultValue: undefined,
+  }),
+  'mail:sesAccessKeyId': defineConfig<string | undefined>({
+    defaultValue: undefined,
+  }),
+  'mail:sesSecretAccessKey': defineConfig<string | undefined>({
+    defaultValue: undefined,
+  }),
 
   // Customize Settings
   'customize:isEmailPublishedForNewUser': defineConfig<boolean>({

+ 4 - 2
apps/app/src/server/service/mail.ts

@@ -8,6 +8,8 @@ import loggerFactory from '~/utils/logger';
 import S2sMessage from '../models/vo/s2s-message';
 
 import type { S2sMessageHandlable } from './s2s-messaging/handlable';
+import type { IConfigManagerForApp } from './config-manager';
+import type Crowi from '../crowi';
 
 const logger = loggerFactory('growi:service:mail');
 
@@ -23,7 +25,7 @@ class MailService implements S2sMessageHandlable {
 
   appService!: any;
 
-  configManager!: any;
+  configManager: IConfigManagerForApp;
 
   s2sMessagingService!: any;
 
@@ -38,7 +40,7 @@ class MailService implements S2sMessageHandlable {
    */
   isMailerSetup = false;
 
-  constructor(crowi) {
+  constructor(crowi: Crowi) {
     this.appService = crowi.appService;
     this.configManager = crowi.configManager;
     this.s2sMessagingService = crowi.s2sMessagingService;