mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
Refactor 'sendMail' to a general helper
This commit is contained in:
parent
dfb7731f68
commit
5dfa6913c3
@ -1,46 +1,10 @@
|
|||||||
import CONFIG from '../../config'
|
import { sendMail } from '../helpers/email/sendMail'
|
||||||
import nodemailer from 'nodemailer'
|
|
||||||
import { htmlToText } from 'nodemailer-html-to-text'
|
|
||||||
import {
|
import {
|
||||||
signupTemplate,
|
signupTemplate,
|
||||||
resetPasswordTemplate,
|
resetPasswordTemplate,
|
||||||
wrongAccountTemplate,
|
wrongAccountTemplate,
|
||||||
emailVerificationTemplate,
|
emailVerificationTemplate,
|
||||||
} from './templateBuilder'
|
} from '../helpers/email/templateBuilder'
|
||||||
|
|
||||||
const hasEmailConfig = CONFIG.SMTP_HOST && CONFIG.SMTP_PORT
|
|
||||||
const hasAuthData = CONFIG.SMTP_USERNAME && CONFIG.SMTP_PASSWORD
|
|
||||||
|
|
||||||
let sendMail = () => {}
|
|
||||||
if (!hasEmailConfig) {
|
|
||||||
if (!CONFIG.TEST) {
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
console.log('Warning: Email middleware will not try to send mails.')
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
sendMail = async (templateArgs) => {
|
|
||||||
const transporter = nodemailer.createTransport({
|
|
||||||
host: CONFIG.SMTP_HOST,
|
|
||||||
port: CONFIG.SMTP_PORT,
|
|
||||||
ignoreTLS: CONFIG.SMTP_IGNORE_TLS,
|
|
||||||
secure: CONFIG.SMTP_SECURE, // true for 465, false for other ports
|
|
||||||
auth: hasAuthData && {
|
|
||||||
user: CONFIG.SMTP_USERNAME,
|
|
||||||
pass: CONFIG.SMTP_PASSWORD,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
transporter.use(
|
|
||||||
'compile',
|
|
||||||
htmlToText({
|
|
||||||
ignoreImage: true,
|
|
||||||
wordwrap: false,
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
|
|
||||||
await transporter.sendMail(templateArgs)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const sendSignupMail = async (resolve, root, args, context, resolveInfo) => {
|
const sendSignupMail = async (resolve, root, args, context, resolveInfo) => {
|
||||||
const { inviteCode } = args
|
const { inviteCode } = args
|
||||||
|
|||||||
44
backend/src/middleware/helpers/email/sendMail.js
Normal file
44
backend/src/middleware/helpers/email/sendMail.js
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import CONFIG from '../../../config'
|
||||||
|
import nodemailer from 'nodemailer'
|
||||||
|
import { htmlToText } from 'nodemailer-html-to-text'
|
||||||
|
|
||||||
|
const hasEmailConfig = CONFIG.SMTP_HOST && CONFIG.SMTP_PORT
|
||||||
|
const hasAuthData = CONFIG.SMTP_USERNAME && CONFIG.SMTP_PASSWORD
|
||||||
|
|
||||||
|
// Wolle
|
||||||
|
// let sendMailCallback = async () => {}
|
||||||
|
// Wolle
|
||||||
|
let sendMailCallback = async (templateArgs) => {
|
||||||
|
console.log('templateArgs: ', templateArgs)
|
||||||
|
}
|
||||||
|
if (!hasEmailConfig) {
|
||||||
|
if (!CONFIG.TEST) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log('Warning: Email middleware will not try to send mails.') // Wolle
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sendMailCallback = async (templateArgs) => {
|
||||||
|
const transporter = nodemailer.createTransport({
|
||||||
|
host: CONFIG.SMTP_HOST,
|
||||||
|
port: CONFIG.SMTP_PORT,
|
||||||
|
ignoreTLS: CONFIG.SMTP_IGNORE_TLS,
|
||||||
|
secure: CONFIG.SMTP_SECURE, // true for 465, false for other ports
|
||||||
|
auth: hasAuthData && {
|
||||||
|
user: CONFIG.SMTP_USERNAME,
|
||||||
|
pass: CONFIG.SMTP_PASSWORD,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
transporter.use(
|
||||||
|
'compile',
|
||||||
|
htmlToText({
|
||||||
|
ignoreImage: true,
|
||||||
|
wordwrap: false,
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
|
await transporter.sendMail(templateArgs)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const sendMail = sendMailCallback
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import mustache from 'mustache'
|
import mustache from 'mustache'
|
||||||
import CONFIG from '../../config'
|
import CONFIG from '../../../config'
|
||||||
import logosWebapp from '../../config/logos.js'
|
import logosWebapp from '../../../config/logos.js'
|
||||||
|
|
||||||
import * as templates from './templates'
|
import * as templates from './templates'
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user