diff --git a/CHANGES b/CHANGES index 4e5c37ad7..b25a1a88c 100644 --- a/CHANGES +++ b/CHANGES @@ -1670,4 +1670,5 @@ * Fine grained eventlog for app configuration * Update Haraka to 2.8.24 * Set sieve_max_redirects to 64 +* SRS support for mail forwarding diff --git a/src/infra_version.js b/src/infra_version.js index fbf7c6062..15f6ba1a2 100644 --- a/src/infra_version.js +++ b/src/infra_version.js @@ -19,7 +19,7 @@ exports = module.exports = { 'postgresql': { repo: 'cloudron/postgresql', tag: 'cloudron/postgresql:2.0.2@sha256:6dcee0731dfb9b013ed94d56205eee219040ee806c7e251db3b3886eaa4947ff' }, 'mongodb': { repo: 'cloudron/mongodb', tag: 'cloudron/mongodb:2.1.0@sha256:6d1bf221cfe6124957e2c58b57c0a47214353496009296acb16adf56df1da9d5' }, 'redis': { repo: 'cloudron/redis', tag: 'cloudron/redis:2.0.0@sha256:8a88dd334b62b578530a014ca1a2425a54cb9df1e475f5d3a36806e5cfa22121' }, - 'mail': { repo: 'cloudron/mail', tag: 'cloudron/mail:2.3.1@sha256:9693e3ae42a12a7ac8cf5df94d828d46f5b22b4e2e1c7d1bc614d6ee2a22c365' }, + 'mail': { repo: 'cloudron/mail', tag: 'cloudron/mail:2.4.0@sha256:ed633c58217185ebf6036dd5d901fbed876a5e9dbd684a339e3881b6aab01287' }, 'graphite': { repo: 'cloudron/graphite', tag: 'cloudron/graphite:2.2.0@sha256:fc9ca69d16e6ebdbd98ed53143d4a0d2212eef60cb638dc71219234e6f427a2c' }, 'sftp': { repo: 'cloudron/sftp', tag: 'cloudron/sftp:0.1.0@sha256:e177c5bf5f38c84ce1dea35649c22a1b05f96eec67a54a812c5a35e585670f0f' } } diff --git a/src/mail.js b/src/mail.js index f56edfd3a..d77d19c8a 100644 --- a/src/mail.js +++ b/src/mail.js @@ -575,8 +575,9 @@ function checkConfiguration(callback) { }); } -function createMailConfig(mailFqdn, callback) { +function createMailConfig(mailFqdn, mailDomain, callback) { assert.strictEqual(typeof mailFqdn, 'string'); + assert.strictEqual(typeof mailDomain, 'string'); assert.strictEqual(typeof callback, 'function'); debug('createMailConfig: generating mail config'); @@ -587,8 +588,9 @@ function createMailConfig(mailFqdn, callback) { const mailOutDomains = mailDomains.filter(d => d.relay.provider !== 'noop').map(d => d.domain).join(','); const mailInDomains = mailDomains.filter(function (d) { return d.enabled; }).map(function (d) { return d.domain; }).join(','); + // mail_domain is used for SRS if (!safe.fs.writeFileSync(path.join(paths.ADDON_CONFIG_DIR, 'mail/mail.ini'), - `mail_in_domains=${mailInDomains}\nmail_out_domains=${mailOutDomains}\nmail_server_name=${mailFqdn}\n\n`, 'utf8')) { + `mail_in_domains=${mailInDomains}\nmail_out_domains=${mailOutDomains}\nmail_server_name=${mailFqdn}\nmail_domain=${mailDomain}\n\n`, 'utf8')) { return callback(new Error('Could not create mail var file:' + safe.error.message)); } @@ -655,7 +657,7 @@ function configureMail(mailFqdn, mailDomain, callback) { shell.exec('startMail', 'docker rm -f mail || true', function (error) { if (error) return callback(error); - createMailConfig(mailFqdn, function (error, allowInbound) { + createMailConfig(mailFqdn, mailDomain, function (error, allowInbound) { if (error) return callback(error); var ports = allowInbound ? '-p 587:2525 -p 993:9993 -p 4190:4190 -p 25:2525' : '';