diff --git a/src/cloudron.js b/src/cloudron.js index 170952513..c1a3c3a4d 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -166,6 +166,7 @@ function onConfigured(callback) { cron.initialize, certificates.ensureFallbackCertificate, platform.initialize, // requires fallback certs for mail container + ensureDkimKey, addDnsRecords, configureAdmin, mailer.start @@ -512,12 +513,7 @@ function sendAliveStatus(callback) { }); } -function readDkimPublicKeySync() { - if (!config.fqdn()) { - debug('Cannot read dkim public key without a domain.', safe.error); - return null; - } - +function ensureDkimKey(callback) { var dkimPath = path.join(paths.MAIL_DATA_DIR, 'dkim/' + config.fqdn()); var dkimPrivateKeyFile = path.join(dkimPath, 'private'); var dkimPublicKeyFile = path.join(dkimPath, 'public'); @@ -536,6 +532,18 @@ function readDkimPublicKeySync() { debug('DKIM keys already present'); } + callback(); +} + +function readDkimPublicKeySync() { + if (!config.fqdn()) { + debug('Cannot read dkim public key without a domain.', safe.error); + return null; + } + + var dkimPath = path.join(paths.MAIL_DATA_DIR, 'dkim/' + config.fqdn()); + var dkimPublicKeyFile = path.join(dkimPath, 'public'); + var publicKey = safe.fs.readFileSync(dkimPublicKeyFile, 'utf8'); if (publicKey === null) {