Как отправить массовую электронную почту асинхронно из фона, не влияя на приложение Node.JS? - PullRequest
0 голосов
/ 12 октября 2018

В настоящее время я использую nodemailer для отправки электронной почты из моего приложения node.js.То, что я ищу, - это «что-то», которое ставит в очередь и планирует отправку большого количества писем (500+ на пользователя) несколькими пользователями.

Это должно выполняться как отдельный процесс в фоновом режиме и должно запускатьсямое приложение node.js Отправка электронной почты не должна влиять на то, чтобы мое приложение (сервер) Node.Js отвечало на запросы.

Я знаю, что приведенные выше утверждения больше похожи на требование / w, чем на решение проблемы, но янужно надежное решение. Пожалуйста, дайте краткое решение (то есть, что «что-то» использовать).

1 Ответ

0 голосов
/ 12 октября 2018

Создайте лямбда-функцию для отправки одного электронного письма только с помощью скрипта nodeMailer.

В этой лямбде я бы кэшировал почтовую программу вне фактической функции экспорта, например:

const nodemailer = require('nodemailer');

exports.handler = (event, context, callback) => {

    // ...NodeMailer stuff

    callback(null, event)
};

Затем запустите этулямбда с событием SQS, как показано здесь: https://medium.com/slalom-technology/sqs-as-an-event-source-to-trigger-lambda-8858cb3f627f

Вы можете добавить сообщение в очередь, используя JS AWS-SDK из приложения js вашего узла, как показано здесь: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#sendMessage-property

...