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

reset changes on server and disabled isMailerActive

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

+ 3 - 1
src/client/js/services/AdminAppContainer.js

@@ -63,7 +63,9 @@ export default class AdminAppContainer extends Container {
       siteUrl: appSettingsParams.siteUrl,
       envSiteUrl: appSettingsParams.envSiteUrl,
       isSetSiteUrl: !!appSettingsParams.siteUrl,
-      isMailerActive: appSettingsParams.isMailerActive,
+      // GW-3714 manage mailer status on server
+      isMailerActive: true,
+      // isMailerActive: appSettingsParams.isMailerActive,
       fromAddress: appSettingsParams.fromAddress,
       smtpHost: appSettingsParams.smtpHost,
       smtpPort: appSettingsParams.smtpPort,

+ 7 - 26
src/server/routes/apiv3/app-settings.js

@@ -182,7 +182,6 @@ module.exports = (crowi) => {
       fileUpload: crowi.configManager.getConfig('crowi', 'app:fileUpload'),
       siteUrl: crowi.configManager.getConfig('crowi', 'app:siteUrl'),
       envSiteUrl: crowi.configManager.getConfigFromEnvVars('crowi', 'app:siteUrl'),
-      isMailerActive: crowi.mailService.isMailerActive,
       fromAddress: crowi.configManager.getConfig('crowi', 'mail:from'),
       smtpHost: crowi.configManager.getConfig('crowi', 'mail:smtpHost'),
       smtpPort: crowi.configManager.getConfig('crowi', 'mail:smtpPort'),
@@ -197,8 +196,8 @@ module.exports = (crowi) => {
       secretAccessKey: crowi.configManager.getConfig('crowi', 'aws:secretAccessKey'),
       isEnabledPlugins: crowi.configManager.getConfig('crowi', 'plugin:isEnabledPlugins'),
     };
-
     return res.apiv3({ appSettingsParams });
+
   });
 
 
@@ -314,7 +313,7 @@ module.exports = (crowi) => {
   /**
    * validate mail setting send test mail
    */
-  async function sendTestEmail(mailConfig) {
+  async function sendTestEmail(destinationAddress) {
 
     const { configManager, mailService } = crowi;
 
@@ -351,16 +350,12 @@ module.exports = (crowi) => {
 
     const mailOptions = {
       from: fromAddress,
-      ...mailConfig,
+      to: destinationAddress,
+      subject: 'Wiki管理設定のアップデートによるメール通知',
+      text: 'このメールは、WikiのSMTP設定のアップデートにより送信されています。',
     };
 
-    try {
-      await sendMailPromiseWrapper(smtpClient, mailOptions);
-    }
-    catch (err) {
-      mailService.isMailerActive = false;
-      return err;
-    }
+    await sendMailPromiseWrapper(smtpClient, mailOptions);
   }
 
   const updateMailSettinConfig = async function(requestMailSettingParams) {
@@ -376,7 +371,7 @@ module.exports = (crowi) => {
     mailService.publishUpdatedMessage();
 
     return {
-      isMailerActive: mailService.isMailerActive,
+      isMailerSetup: mailService.isMailerSetup,
       fromAddress: configManager.getConfig('crowi', 'mail:from'),
       smtpHost: configManager.getConfig('crowi', 'mail:smtpHost'),
       smtpPort: configManager.getConfig('crowi', 'mail:smtpPort'),
@@ -414,14 +409,6 @@ module.exports = (crowi) => {
 
     try {
       const mailSettingParams = await updateMailSettinConfig({ 'mail:from': req.body.fromAddress });
-
-      const mailConfig = {
-        to: req.user.email,
-        subject: 'Wiki管理設定のアップデートによるメール通知',
-        text: 'このメールは、WikiのSMTP設定のアップデートにより送信されています。',
-      };
-      await sendTestEmail(mailConfig);
-
       return res.apiv3({ mailSettingParams });
     }
     catch (err) {
@@ -465,12 +452,6 @@ module.exports = (crowi) => {
 
     try {
       const mailSettingParams = await updateMailSettinConfig(requestMailSettingParams);
-      const mailConfig = {
-        to: req.user.email,
-        subject: 'Wiki管理設定のアップデートによるメール通知',
-        text: 'このメールは、WikiのSMTP設定のアップデートにより送信されています。',
-      };
-      await sendTestEmail(mailConfig);
       return res.apiv3({ mailSettingParams });
     }
     catch (err) {

+ 7 - 11
src/server/service/mail.js

@@ -21,9 +21,9 @@ class MailService extends S2sMessageHandlable {
     this.mailer = {};
 
     /**
-     * the flag whether mailer is valid
+     * the flag whether mailer is set up successfully
      */
-    this.isMailerActive = false;
+    this.isMailerSetup = false;
 
     this.initialize();
   }
@@ -70,7 +70,7 @@ class MailService extends S2sMessageHandlable {
   initialize() {
     const { appService, configManager } = this;
 
-    this.isMailerActive = false;
+    this.isMailerSetup = false;
 
     if (!configManager.getConfig('crowi', 'mail:from')) {
       this.mailer = null;
@@ -79,12 +79,13 @@ class MailService extends S2sMessageHandlable {
 
     const transmissionMethod = configManager.getConfig('crowi', 'mail:transmissionMethod');
 
-    if (true) {
-    // if (transmissionMethod === 'smtp') {
+    if (transmissionMethod === 'smtp') {
       this.mailer = this.createSMTPClient();
+      this.isMailerSetup = true;
     }
     else if (transmissionMethod === 'ses') {
       this.mailer = this.createSESClient();
+      this.isMailerSetup = true;
     }
     else {
       this.mailer = null;
@@ -169,12 +170,7 @@ class MailService extends S2sMessageHandlable {
     );
 
     config.text = output;
-    try {
-      return this.mailer.sendMail(this.setupMailConfig(config));
-    }
-    catch (err) {
-      this.isMailerActive = false;
-    }
+    return this.mailer.sendMail(this.setupMailConfig(config));
   }
 
 }