設定値の分析

src/server/service/mail.js にて ses 用に読み込まれる

// Priority 2. SES else if (configManager.getConfig('crowi', 'aws:accessKeyId') && configManager.getConfig('crowi', 'aws:secretAccessKey')) { this.mailer = this.createSESClient(); }
createSESClient(option) { const { configManager } = this; if (!option) { option = { // eslint-disable-line no-param-reassign accessKeyId: configManager.getConfig('crowi', 'aws:accessKeyId'), secretAccessKey: configManager.getConfig('crowi', 'aws:secretAccessKey'), }; } const ses = require('nodemailer-ses-transport'); const client = nodemailer.createTransport(ses(option)); logger.debug('mailer set up for SES', client); return client; }

これ重要memo
https://nodemailer.com/transports/ses/ external_link

使用している箇所はそんなに多くないみたいだ

難解だ

middlewares.awsEnabled = function() { return function(req, res, next) { if ((configManager.getConfig('crowi', 'aws:region') !== '' || this.configManager.getConfig('crowi', 'aws:customEndpoint') !== '') && configManager.getConfig('crowi', 'aws:bucket') !== '' && configManager.getConfig('crowi', 'aws:accessKeyId') !== '' && configManager.getConfig('crowi', 'aws:secretAccessKey') !== '') { req.flash('globalError', req.t('message.aws_sttings_required')); return res.redirect('/'); } return next(); }; };