yusuketk 5 лет назад
Родитель
Сommit
f25d02a87e

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

@@ -31,6 +31,18 @@ function SmtpSetting(props) {
     }
   }
 
+  async function sendTestEmailHandler() {
+    const { adminAppContainer } = props;
+    try {
+      await adminAppContainer.sendTestEmail();
+      toastSuccess('Success to send test e-mail with smtp');
+    }
+    catch (err) {
+      toastError(err);
+      logger.error(err);
+    }
+  }
+
   return (
     <React.Fragment>
       <div id="mail-smtp" className="tab-pane active mt-5">
@@ -81,6 +93,9 @@ function SmtpSetting(props) {
             <button type="button" className="btn btn-primary" onClick={submitHandler} disabled={adminAppContainer.state.retrieveError != null}>
               { t('Update') }
             </button>
+            <button type="button" className="btn btn-primary" onClick={sendTestEmailHandler} disabled={adminAppContainer.state.retrieveError != null}>
+              send test
+            </button>
           </div>
         </div>
 

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

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

+ 2 - 8
src/server/routes/apiv3/app-settings.js

@@ -464,20 +464,14 @@ module.exports = (crowi) => {
    *    /app-settings/smtp-test:
    *      post:
    *        tags: [AppSettings]
-   *        operationId: posyAppSettingSmtpTast
+   *        operationId: getSmtpTest
    *        summary: /app-settings/smtp-setting
    *        description: Send test mail for smtp
-   *        requestBody:
-   *          required: true
-   *          content:
-   *            application/json:
-   *              schema:
-   *                $ref: '#/components/schemas/SmtpSettingParams'
    *        responses:
    *          200:
    *            description: Succeeded to send test mail for smtp
    */
-  router.post('/smtp-test', loginRequiredStrictly, adminRequired, csrf, validator.smtpSetting, apiV3FormValidator, async(req, res) => {
+  router.get('/smtp-test', loginRequiredStrictly, adminRequired, async(req, res) => {
     try {
       await sendTestEmail(req.user);
       return res.apiv3({});