import { readFileSync } from 'fs-extra'
-import { isArray, merge } from 'lodash'
+import { merge } from 'lodash'
import { createTransport, Transporter } from 'nodemailer'
import { join } from 'path'
+import { arrayify, root } from '@shared/core-utils'
import { EmailPayload } from '@shared/models'
import { SendEmailDefaultOptions } from '../../shared/models/server/emailer.model'
-import { isTestInstance } from '../helpers/core-utils'
-import { root } from '@shared/core-utils'
+import { isTestOrDevInstance } from '../helpers/core-utils'
import { bunyanLogger, logger } from '../helpers/logger'
import { CONFIG, isEmailEnabled } from '../initializers/config'
import { WEBSERVER } from '../initializers/constants'
this.initialized = true
if (!isEmailEnabled()) {
- if (!isTestInstance()) {
+ if (!isTestOrDevInstance()) {
logger.error('Cannot use SMTP server because of lack of configuration. PeerTube will not be able to send mails!')
}
}
}
- return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload })
+ return JobQueue.Instance.createJobAsync({ type: 'email', payload: emailPayload })
}
addPasswordCreateEmailJob (username: string, to: string, createPasswordUrl: string) {
}
}
- return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload })
+ return JobQueue.Instance.createJobAsync({ type: 'email', payload: emailPayload })
}
addVerifyEmailJob (username: string, to: string, verifyEmailUrl: string) {
}
}
- return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload })
+ return JobQueue.Instance.createJobAsync({ type: 'email', payload: emailPayload })
}
addUserBlockJob (user: MUser, blocked: boolean, reason?: string) {
text: `Your account ${user.username} on ${CONFIG.INSTANCE.NAME} has been ${blockedWord}${reasonString}.`
}
- return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload })
+ return JobQueue.Instance.createJobAsync({ type: 'email', payload: emailPayload })
}
addContactFormJob (fromEmail: string, fromName: string, subject: string, body: string) {
}
}
- return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload })
+ return JobQueue.Instance.createJobAsync({ type: 'email', payload: emailPayload })
}
async sendMail (options: EmailPayload) {
if (!isEmailEnabled()) {
- throw new Error('Cannot send mail because SMTP is not configured.')
+ logger.info('Cannot send mail because SMTP is not configured.')
+ return
}
const fromDisplayName = options.from
subjectPrefix: CONFIG.EMAIL.SUBJECT.PREFIX
})
- const toEmails = isArray(options.to)
- ? options.to
- : [ options.to ]
+ const toEmails = arrayify(options.to)
for (const to of toEmails) {
const baseOptions: SendEmailDefaultOptions = {