import { isArray, merge } from 'lodash'
import { createTransport, Transporter } from 'nodemailer'
import { join } from 'path'
+import { 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
const email = new Email({
send: true,
+ htmlToText: {
+ selectors: [
+ { selector: 'img', format: 'skip' },
+ { selector: 'a', options: { hideLinkHrefIfSameAsText: true } }
+ ]
+ },
message: {
from: `"${fromDisplayName}" <${CONFIG.SMTP.FROM_ADDRESS}>`
},
}
}
- // overriden/new variables given for a specific template in the payload
+ // overridden/new variables given for a specific template in the payload
const sendOptions = merge(baseOptions, options)
await email.send(sendOptions)