Geplante E-Mail-Zustellung mit Mailgun und Node.js
Dies ist eine aktualisierte Version des Beitrags „Geplante E-Mail-Zustellung mit Mailgun und Node.js“, geschrieben von Timothy Voice, einem in Brooklyn ansässigen Softwareentwickler und MEAN.JS-Enthusiasten. Der ursprüngliche Beitrag wurde zuerst veröffentlicht auf seinem Blog.
Normalerweise mögen die meisten von uns keine fiesen (englisch „mean“) Dinge (außer vielleicht „Mean Girls“). Es gibt jedoch ein paar „mean“ Dinge, die tatsächlich ziemlich hilfreich sein können. Eines davon ist die MEAN-App (MongoDB, Express.js, AngularJS und Node.js), mit der Sie Websites und mobile Apps erstellen können. Möchten Sie mehr erfahren? Lassen Sie uns ins Detail gehen.
Was ist eine geplante E-Mail-Zustellung?
Die geplante E-Mail-Zustellung ist eine relativ neue Erfindung, hat aber bei E-Mail-Nachrichten schnell den Mainstream erreicht. Sie ist bei den meisten großen Internetanbietern wie Microsoft Outlook, Gmail und Yahoo weit verbreitet und ermöglicht es Ihnen, die Zustellung Ihrer Nachrichten auf einen späteren Zeitpunkt zu verschieben. Wenn Sie eine Nachricht verfassen, möchten Sie vielleicht, dass diese zu einer bestimmten Zeit zugestellt und nicht sofort gesendet wird. Die E-Mail-Planung ermöglicht es Ihnen, Ihre Nachrichten im Postausgang zu behalten, bis sie gesendet werden sollen. Ganz einfach, oder?
Warum planen Leute E-Mails für einen späteren Zeitpunkt?
Menschen versenden E-Mails aus den unterschiedlichsten Gründen (vertrauen Sie uns, wir wissen das). Wenn Teams über verschiedene Zeitzonen hinweg zusammenarbeiten, möchten sie manchmal die Zustellung verzögern, bis die empfangende Person ihren Arbeitstag begonnen hat, damit die E-Mail höchste Aufmerksamkeit erhält. In anderen Fällen möchten Personen die Zustellung verschieben, wenn sie Ideen oder Aufgaben haben, die sie später weiterverfolgen möchten. Die Möglichkeit, den Versand um eine bestimmte Zeit zu verzögern, hilft ihnen dabei, sich selbst daran zu erinnern, was sie mit einer neuen E-Mail erreichen möchten.
Natürlich funktioniert die geplante E-Mail-Zustellung nicht von allein. Wo kommt also MEAN ins Spiel?
Warum ist MEAN für die geplante E-Mail-Zustellung wichtig?
Was die Funktionen betrifft, hilft Ihnen Ihre herausragende MEAN-App dabei, Transaktions-E-Mails zur Unterstützung Ihres Service zu versenden, wie z. B. E-Mail-Bestätigungen, vergessene Passwörter, Benachrichtigungen usw. – dies umfasst natürlich auch Optionen für die E-Mail-Zustellung. Es gibt eine Kategorie von Apps, bei denen E-Mail der Service ist, wie z. B. Wetter-Apps, Newsletter-Zustellung usw., und genau hier kommt die geplante E-Mail-Zustellung ins Spiel. Für diese Services muss unsere App der Nutzerschaft automatisch zu bestimmten Zeiten und unter bestimmten Bedingungen E-Mails senden. Durch die Kombination einiger herausragender npm-Module und die Anbindung an einen E-Mail-Service lässt sich dies schnell umsetzen.
Wie richten Sie MEAN mit Mailgun ein, um eine geplante E-Mail-Zustellung zu erreichen?
Befolgen Sie die folgenden Schritte, um Ihrer MEAN-App eine Funktion für geplante E-Mails hinzuzufügen.
Sie benötigen vier Funktionen: eine Funktion mailUsers zur Auswahl der Empfangenden, eine Funktion mailCreator zur Generierung der E-Mail aus einer Vorlage, eine Funktion mailScheduler zum Triggern des Mailings zu einer bestimmten Zeit und eine Funktion mailSender zum Senden der E-Mails.
Die Einrichtung
Binden Sie die Node-Module und Nunjucks ein, damit Sie Ihren HTML-E-Mail-Vorlagen Variablen hinzufügen können.
Abfrage der Nutzerschaft
Wir verwenden die Mongoose-Abfrage find(x).where(y), um die Nutzerschaft zu durchsuchen und all jene zu finden, die an diesem Tag Benachrichtigungen erhalten möchten, und geben ein Promise zurück.
Der Mail Creator
Der mailCreator akzeptiert ein Array von Nutzenden und generiert ein weiteres Array, das die E-Mail-Adressen und die von Nunjucks gerenderte HTML-Vorlage enthält.
Der Mailer
Die Funktion mailSender akzeptiert die E-Mail-Adresse einer nutzenden Person, einen Betreff und eine HTML-Vorlage für unsere E-Mail und gibt ein Promise zurück, das nach der Auflösung die Antwort der Mailgun-API enthält – so etwas wie „Queued. Vielen Dank’.
Der Scheduler
Hier übernimmt Ihre Scheduler-Funktion die gewünschte Aufgabe und führt sie aus, wenn die Regel-Variable und die Regelbeschreibung dies vorgeben. Zum Beispiel: die tägliche Nutzung eines Node-Schedulers, um den Versand jeden Tag um 16:38 Uhr zu planen. Hier finden Sie Informationen zur Erstellung von Wiederholungsregeln in node-scheduler.
Alles zusammensetzen
Jetzt müssen Sie nur noch die Scheduler-Funktion im Delivery-Node-Controller aufrufen und die durch Ihre Abfrage zurückgegebenen Nutzenden, Ihren Mail Generator und Ihren Mail Sender übergeben. Das gesamte System in einem einzigen Node-Controller finden Sie hier. Hier ist ein Beispiel für einen geplanten Mailing-Aufruf:
Jetzt haben Sie einen Controller, der die Nutzenden findet, die zu einem bestimmten Zeitpunkt Benachrichtigungen erhalten möchten, und ihnen eine E-Mail sendet, wenn Ihr Job-Scheduler ausgelöst wird.
Dieser Controller ermöglicht es Ihnen, Versandregeln anzuwenden, die Zustellung zu verwalten und mehr. Mit dieser Integration der MEAN-App können Sie E-Mails problemlos planen.
Zusammenfassung
Auch wenn es knifflig sein kann, alle Details der geplanten E-Mail-Zustellung herauszufinden, hilft Ihnen eine MEAN-App-Integration mit Mailgun dabei, die Kontrolle über Ihre E-Mail-Planung zu übernehmen und Ihre E-Mails genau dann zu versenden, wenn sie verschickt werden sollen. Und das ist ziemlich fantastisch.