X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=pkgs%2Fwebapps%2Fpeertube%2Fsendmail.patch;h=b42bc49b993df3558fe2a4e66fa9dd683e6854eb;hb=598aaa373c359046ee08ab5e7576ebaa4f0331e0;hpb=f3a8fab524e384e0b5cad3df6506a27b2f405ebc diff --git a/pkgs/webapps/peertube/sendmail.patch b/pkgs/webapps/peertube/sendmail.patch new file mode 100644 index 0000000..b42bc49 --- /dev/null +++ b/pkgs/webapps/peertube/sendmail.patch @@ -0,0 +1,121 @@ +commit 677374d59c6aa2cb8145da3cd9c17fe05fd9b149 +Author: Ismaël Bouya +Date: Wed Feb 13 12:16:27 2019 +0100 + + Add sendmail + +diff --git a/config/production.yaml.example b/config/production.yaml.example +index bb5ac251..4583f1f5 100644 +--- a/config/production.yaml.example ++++ b/config/production.yaml.example +@@ -46,6 +46,8 @@ ldap: + + # SMTP server to send emails + smtp: ++ transport: smtp ++ sendmail: null + hostname: null + port: 465 # If you use StartTLS: 587 + username: null +diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts +index fb21df37..c551b4f9 100644 +--- a/server/initializers/constants.ts ++++ b/server/initializers/constants.ts +@@ -188,6 +188,8 @@ const CONFIG = { + USER_FILTER: config.has('ldap.user_filter') ? config.get('ldap.user_filter') : '(|(email=%username%)(uid=%username%))' + }, + SMTP: { ++ TRANSPORT: config.has('smtp.transport') ? config.get('smtp.transport') : 'smtp', ++ SENDMAIL: config.has('smtp.sendmail') ? config.get('smtp.sendmail') : null, + HOSTNAME: config.get('smtp.hostname'), + PORT: config.get('smtp.port'), + USERNAME: config.get('smtp.username'), +diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts +index f384a254..ec6e249b 100644 +--- a/server/lib/emailer.ts ++++ b/server/lib/emailer.ts +@@ -27,33 +27,41 @@ class Emailer { + this.initialized = true + + if (Emailer.isEnabled()) { +- logger.info('Using %s:%s as SMTP server.', CONFIG.SMTP.HOSTNAME, CONFIG.SMTP.PORT) +- +- let tls +- if (CONFIG.SMTP.CA_FILE) { +- tls = { +- ca: [ readFileSync(CONFIG.SMTP.CA_FILE) ] ++ if (CONFIG.SMTP.TRANSPORT === 'smtp') { ++ logger.info('Using %s:%s as SMTP server.', CONFIG.SMTP.HOSTNAME, CONFIG.SMTP.PORT) ++ ++ let tls ++ if (CONFIG.SMTP.CA_FILE) { ++ tls = { ++ ca: [ readFileSync(CONFIG.SMTP.CA_FILE) ] ++ } + } +- } + +- let auth +- if (CONFIG.SMTP.USERNAME && CONFIG.SMTP.PASSWORD) { +- auth = { +- user: CONFIG.SMTP.USERNAME, +- pass: CONFIG.SMTP.PASSWORD ++ let auth ++ if (CONFIG.SMTP.USERNAME && CONFIG.SMTP.PASSWORD) { ++ auth = { ++ user: CONFIG.SMTP.USERNAME, ++ pass: CONFIG.SMTP.PASSWORD ++ } + } +- } + +- this.transporter = createTransport({ +- host: CONFIG.SMTP.HOSTNAME, +- port: CONFIG.SMTP.PORT, +- secure: CONFIG.SMTP.TLS, +- debug: CONFIG.LOG.LEVEL === 'debug', +- logger: bunyanLogger as any, +- ignoreTLS: CONFIG.SMTP.DISABLE_STARTTLS, +- tls, +- auth +- }) ++ this.transporter = createTransport({ ++ host: CONFIG.SMTP.HOSTNAME, ++ port: CONFIG.SMTP.PORT, ++ secure: CONFIG.SMTP.TLS, ++ debug: CONFIG.LOG.LEVEL === 'debug', ++ logger: bunyanLogger as any, ++ ignoreTLS: CONFIG.SMTP.DISABLE_STARTTLS, ++ tls, ++ auth ++ }) ++ } else { // sendmail ++ this.transporter = createTransport({ ++ sendmail: true, ++ newline: 'unix', ++ path: CONFIG.SMTP.SENDMAIL, ++ }) ++ } + } else { + if (!isTestInstance()) { + logger.error('Cannot use SMTP server because of lack of configuration. PeerTube will not be able to send mails!') +@@ -62,11 +70,17 @@ class Emailer { + } + + static isEnabled () { +- return !!CONFIG.SMTP.HOSTNAME && !!CONFIG.SMTP.PORT ++ if (CONFIG.SMTP.TRANSPORT === 'sendmail') { ++ return !!CONFIG.SMTP.SENDMAIL ++ } else if (CONFIG.SMTP.TRANSPORT === 'smtp') { ++ return !!CONFIG.SMTP.HOSTNAME && !!CONFIG.SMTP.PORT ++ } else { ++ return false ++ } + } + + async checkConnectionOrDie () { +- if (!this.transporter) return ++ if (!this.transporter || CONFIG.SMTP.TRANSPORT !== 'smtp') return + + logger.info('Testing SMTP server...') +