Просмотр исходного кода

Revert "enable to send test e-mail"

This reverts commit a847d6945d999caf93b3c56b7f13d9599a765bd2.
yusuketk 5 лет назад
Родитель
Сommit
a1080fc2b4

+ 0 - 14
src/client/js/components/Admin/App/SmtpSetting.jsx

@@ -50,19 +50,6 @@ function SmtpSetting(props) {
     }
     }
   }
   }
 
 
-  async function sendTestEmailhandler() {
-    const { adminAppContainer } = props;
-    try {
-      await adminAppContainer.sendTestEmail();
-      toastSuccess('success to send test e-mail');
-    }
-    catch (err) {
-      toastError(err);
-      logger.error(err);
-    }
-  }
-
-
   async function initialize() {
   async function initialize() {
     const { t, adminAppContainer } = props;
     const { t, adminAppContainer } = props;
 
 
@@ -147,7 +134,6 @@ function SmtpSetting(props) {
             >
             >
               {t('admin:app_setting.initialize_mail_settings')}
               {t('admin:app_setting.initialize_mail_settings')}
             </button>
             </button>
-            <button type="button" className="btn btn-secondary" onClick={sendTestEmailhandler}>send test e-mail</button>
           </div>
           </div>
         </div>
         </div>
       </div>
       </div>

+ 0 - 8
src/client/js/services/AdminAppContainer.js

@@ -278,14 +278,6 @@ export default class AdminAppContainer extends Container {
     return mailSettingParams;
     return mailSettingParams;
   }
   }
 
 
-  /**
-   * send test e-mail
-   * @memberOf AdminAppContainer
-   */
-  async sendTestEmail() {
-    await this.appContainer.apiv3.get('/app-settings/send-test-email');
-  }
-
   /**
   /**
    * Initialize smtp setting
    * Initialize smtp setting
    * @memberOf AdminAppContainer
    * @memberOf AdminAppContainer

+ 49 - 45
src/server/routes/apiv3/app-settings.js

@@ -310,6 +310,43 @@ module.exports = (crowi) => {
     });
     });
   }
   }
 
 
+  /**
+   * validate mail setting send test mail
+   */
+  async function validateMailSetting(req) {
+    const { configManager, mailService } = crowi;
+    const fromAddress = configManager.getConfig('crowi', 'mail:from');
+    if (fromAddress == null) {
+      throw Error('fromAddress is not setup');
+    }
+
+    const option = {
+      host: req.body.smtpHost,
+      port: req.body.smtpPort,
+    };
+    if (req.body.smtpUser && req.body.smtpPassword) {
+      option.auth = {
+        user: req.body.smtpUser,
+        pass: req.body.smtpPassword,
+      };
+    }
+    if (option.port === 465) {
+      option.secure = true;
+    }
+
+    const smtpClient = mailService.createSMTPClient(option);
+    debug('mailer setup for validate SMTP setting', smtpClient);
+
+    const mailOptions = {
+      from: fromAddress,
+      to: req.user.email,
+      subject: 'Wiki管理設定のアップデートによるメール通知',
+      text: 'このメールは、WikiのSMTP設定のアップデートにより送信されています。',
+    };
+
+    await sendMailPromiseWrapper(smtpClient, mailOptions);
+  }
+
   const updateMailSettinConfig = async function(requestMailSettingParams) {
   const updateMailSettinConfig = async function(requestMailSettingParams) {
     const {
     const {
       configManager,
       configManager,
@@ -321,6 +358,13 @@ module.exports = (crowi) => {
 
 
     await mailService.initialize();
     await mailService.initialize();
     mailService.publishUpdatedMessage();
     mailService.publishUpdatedMessage();
+
+    return {
+      smtpHost: configManager.getConfig('crowi', 'mail:smtpHost'),
+      smtpPort: configManager.getConfig('crowi', 'mail:smtpPort'),
+      smtpUser: configManager.getConfig('crowi', 'mail:smtpUser'),
+      smtpPassword: configManager.getConfig('crowi', 'mail:smtpPassword'),
+    };
   };
   };
 
 
   /**
   /**
@@ -447,11 +491,11 @@ module.exports = (crowi) => {
   /**
   /**
    * @swagger
    * @swagger
    *
    *
-   *    /app-settings/send-test-email:
+   *    /app-settings/send-test-mail:
    *      get:
    *      get:
    *        tags: [AppSettings]
    *        tags: [AppSettings]
-   *        operationId: sendTestEmail
-   *        summary: /app-settings/send-test-email
+   *        operationId: sendTestMail
+   *        summary: /app-settings/send-test-mail
    *        description: send test e-mail
    *        description: send test e-mail
    *        responses:
    *        responses:
    *          200:
    *          200:
@@ -461,50 +505,10 @@ module.exports = (crowi) => {
    *                schema:
    *                schema:
    *                  $ref: '#/components/schemas/SmtpSettingParams'
    *                  $ref: '#/components/schemas/SmtpSettingParams'
    */
    */
-  router.get('/send-test-email', loginRequiredStrictly, adminRequired, async(req, res) => {
+  router.put('/send-test-mail', loginRequiredStrictly, adminRequired, async(req, res) => {
     try {
     try {
-      const {
-        configManager,
-        mailService,
-      } = crowi;
-
-      const fromAddress = configManager.getConfig('crowi', 'mail:from');
-      const smtpHost = configManager.getConfig('crowi', 'mail:smtpHost');
-      const smtpPort = configManager.getConfig('crowi', 'mail:smtpPort');
-      const smtpUser = configManager.getConfig('crowi', 'mail:smtpUser');
-      const smtpPassword = configManager.getConfig('crowi', 'mail:smtpPassword');
-
-      if (fromAddress == null) {
-        throw Error('fromAddress is not setup');
-      }
-
-      const option = {
-        host: smtpHost,
-        port: smtpPort,
-      };
-      if (smtpUser != null && smtpPassword != null) {
-        option.auth = {
-          user: smtpUser,
-          pass: smtpPassword,
-        };
-      }
-      if (option.port === 465) {
-        option.secure = true;
-      }
-
-      const smtpClient = mailService.createSMTPClient(option);
-      debug('mailer setup for validate SMTP setting', smtpClient);
-
-      const mailOptions = {
-        from: fromAddress,
-        to: req.user.email,
-        subject: 'Wiki管理設定のアップデートによるメール通知',
-        text: 'このメールは、WikiのSMTP設定のアップデートにより送信されています。',
-      };
-
-      await sendMailPromiseWrapper(smtpClient, mailOptions);
+      await validateMailSetting(req);
     }
     }
-
     catch (err) {
     catch (err) {
       const msg = req.t('validation.failed_to_send_a_test_email');
       const msg = req.t('validation.failed_to_send_a_test_email');
       logger.error('Error', err);
       logger.error('Error', err);