{"id":25036,"date":"2019-07-16T00:00:00","date_gmt":"2019-07-16T00:00:00","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/"},"modified":"2026-09-16T19:09:50","modified_gmt":"2026-09-16T19:09:50","slug":"wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/","title":{"rendered":"Wie die Node.js-App Cloud Monitoring die Mailgun-API nutzt, um E-Mail-Workflows zu automatisieren"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><i>Dieser Beitrag wurde verfasst von Dan Di Spaltro, Director of Product bei Rackspace\u00a0<\/i><a href=\"http:\/\/www.rackspace.com\/cloud\/public\/monitoring\/\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>Cloud Monitoring<\/i><\/a><i>. Mit Cloud Monitoring \u00fcberwachen Sie jeden Server in jedem Rechenzentrum. So stellen Sie jederzeit sicher, dass Ihre Anwendungsinfrastruktur einwandfrei funktioniert. Bevor Dan das Engineering-Team von Cloud Monitoring leitete, war er Mitbegr\u00fcnder von Cloudkick. Das Y-Combinator-Startup, das sich auf die \u00dcberwachung von Cloud-Infrastruktur konzentrierte, wurde 2010 von Rackspace \u00fcbernommen.\u00a0<\/i><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Engineering-Team bei Rackspace sucht immer nach Wegen, Rackspace-Produkte in den L\u00f6sungen einzusetzen, die wir f\u00fcr unsere Kunden entwickeln. Wir sind der \u00dcberzeugung, dass wir durch die Nutzung unserer eigenen Produkte bessere Software f\u00fcr unsere Kunden entwickeln, da wir dem Team, das direkt gegen\u00fcber sitzt, direktes Feedback geben k\u00f6nnen. W\u00e4hrend der \u00dcbernahme von Mailgun durch Rackspace bot sich uns die einmalige Gelegenheit, die neuesten Dienste von Rackspace in unserem Produkt Cloud Monitoring zu testen. Ein gro\u00dfer Teil der Aufgaben von Cloud Monitoring im Fehlerfall besteht darin, eine E-Mail an den Kunden zu senden. Ein Trigger f\u00fcr diese E-Mails wird ausgel\u00f6st, wenn die \u00fcberwachte Website das Zeitlimit \u00fcberschreitet, mit einem 404-Fehler antwortet oder eine andere nutzerdefinierte Bedingung in Ihrer Alarm-Language erf\u00fcllt ist. Als wir Mailgun evaluierten, war unser Ziel, zuverl\u00e4ssige E-Mail-Benachrichtigungen f\u00fcr unsere Kunden zu erm\u00f6glichen, anstatt die Details der Erstellung, Zustellung und Analysen von E-Mails zu meistern \u2013 drei wesentliche Komponenten der E-Mail-Automatisierung in unserer Gr\u00f6\u00dfenordnung. Als wir Mailgun ausprobierten, waren wir sehr beeindruckt. Wir erhielten die Vorteile, die wir erwartet hatten, und sogar einige, mit denen wir nicht gerechnet hatten. Beispiel:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vern\u00fcnftiges Bouncing \u2013 Mailgun bietet einen sinnvollen, API-basierten Weg, um mit Bounces umzugehen, die aus vielen verschiedenen Gr\u00fcnden h\u00e4ufig auftreten.<\/li>\n\n\n\n<li>Analysen und Tagging \u2013 Da wir in unserer Produktionsumgebung st\u00e4ndig Fehlerszenarien testen, brauchten wir eine M\u00f6glichkeit, bestimmte Konten zu isolieren, die wir als \u201ebesonders\u201c markiert haben. Mailgun unterteilt alle Berichte basierend auf Tags in Segmente, was das Testen erleichtert.<\/li>\n\n\n\n<li>Verantwortlichkeit \u2013 Einfach nur eine E-Mail zu versenden, reicht uns nicht aus. Die Logs von Mailgun bieten eine End-to-End-Ansicht dessen, was genau mit jeder E-Mail passiert ist.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Bevor wir uns ansehen, wie wir Mailgun implementiert und ausgerollt haben, werfen wir einen Blick auf die Architektur von Cloud Monitoring<\/p>\n\n\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-4693\"><p class=\"h5 m-0\" id=\"toc-title-4693\">Inhaltsverzeichnis<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#cloud-monitoring-pipeline\">Cloud-Monitoring-Pipeline<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#vorbereitung-auf-den-test\">Vorbereitung auf den Test<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#mocking-der-mailgun-api\">Mocking der Mailgun-API<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#praeziser-austausch\">Pr\u00e4ziser Austausch<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">05<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#zusammenfassung\">Zusammenfassung<\/a><\/div><\/div><\/nav>\n\n\n<h2 class=\"wp-block-heading\">Cloud-Monitoring-Pipeline<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Das System von Rackspace Cloud Monitoring ist in eine Pipeline verschiedener Dienste unterteilt. Zur Auffrischung betrachten wir die Architektur aus der Vogelperspektive.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4902\" width=\"500\" height=\"375\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/chart.jpg\" alt=\"chart\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/chart.jpg 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/chart-300x225.jpg 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Jeder Schritt repr\u00e4sentiert einen oder mehrere verteilte Dienste, die durch einen Datenstrom verbunden sind. Wir verwenden die Scribe-Software von Facebook f\u00fcr die Punkt-zu-Punkt-Verteilung, das Routing und das Buffering. Mit diesem Datenstrom k\u00f6nnen wir die Daten zerteilen, aufbereiten und in jeden beliebigen Bereich unserer Infrastruktur verteilen. Einfaches Experimentieren mit dem Datenstrom ist entscheidend f\u00fcr unsere Geschwindigkeit. Er erm\u00f6glicht es uns, Daten \u00fcberallhin zu senden, und ist ein wesentlicher Bestandteil des Designs, das unsere Hochverf\u00fcgbarkeit sowie die Beschleunigung und Entwicklung des Produkts unterst\u00fctzt (Nebenbemerkung: Deshalb tr\u00e4gt das Produkt den Codenamen\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/E.L.E._(Extinction_Level_Event):_The_Final_World_Front\" target=\"_tabs\" rel=\"noopener noreferrer\">ELE<\/a>.).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vorbereitung auf den Test<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einem Produktionssystem ist eine vollst\u00e4ndige Umstellung nie eine gute Idee. Daher entschieden wir uns f\u00fcr einen anderen Ansatz. Wir haben Mailgun zun\u00e4chst schrittweise f\u00fcr Konten eingef\u00fchrt, die wir f\u00fcr unsere Tests verwenden. Dadurch konnten wir \u00fcber blo\u00dfe Mikrovalidierungen und Validierungen von Unit-Tests hinausgehen, um uns mit dem System vertraut zu machen. Dank des unkomplizierten HTTP-Supports in Node.js konnten wir diese Integration z\u00fcgig umsetzen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mocking der Mailgun-API<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wann immer wir eine externe Abh\u00e4ngigkeit hinzuf\u00fcgen, versuchen wir, die API zu mocken, sofern dies machbar ist. Das Mocking einer externen API kann sehr einfach oder sehr aufwendig sein, ist aber dennoch wichtig. Unser Ziel ist es, dem Entwicklungsteam keine zus\u00e4tzliche Arbeit aufzub\u00fcrden, aber dennoch Vertrauen in unsere Interaktionen mit einem externen Dienst und dessen Funktionsweise zu behalten. Heutzutage sind die meisten APIs versioniert, sodass gr\u00f6\u00dfere \u00c4nderungen mit einer Versionserh\u00f6hung einhergehen. Dies erm\u00f6glicht es uns, APIs schnell und zuverl\u00e4ssig zu mocken, um umfangreichere End-to-End-Tests in einer kontrollierten Umgebung aufzubauen. Nachdem wir festgelegt hatten, wie wir den Test auf unserem Testkonto ausrollen wollten, bauten wir unsere eigene Mailgun-API, wodurch wir uns mit der neuen Integration vertraut machen konnten. Dieser Prozess war extrem einfach. Die Mailgun-API, die f\u00fcr alle ausgehenden Vorg\u00e4nge und Analysen bereitgestellt wurde, war einfach und unkompliziert zu implementieren. Erst nach dem Mocking erkannten wir, dass es einen Testmodus gibt, um den Versand von E-Mails in einer Sandbox zu testen. Dennoch war dies eine wertvolle Lernerfahrung.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pr\u00e4ziser Austausch<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nach Abschluss der Testvorbereitungen begannen wir mit der Implementierung und der \u00dcberwachung der E-Mail-Performance. So wollten wir das Vertrauen gewinnen, dass Mailgun eine L\u00f6sung ist, die wir auf breiterer Basis f\u00fcr unsere Nutzer ausrollen k\u00f6nnen. In der Anwendung Cloud Monitoring ist die Komponente, die die Zustellung einer Warnung sicherstellt, eine komplexe Software mit dem treffenden Namen Messenger. Sie \u00fcbernimmt verschiedene Aufgaben, um die Zuverl\u00e4ssigkeit unserer E-Mail-Benachrichtigungen zu erh\u00f6hen. Intern ist der Messenger eine in Phasen unterteilte Ausf\u00fchrungspipeline. Sie umfasst die folgenden Phasen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nachricht empfangen<\/li>\n\n\n\n<li>Nachrichten-Atom sperren<\/li>\n\n\n\n<li>Lookups f\u00fcr Konto\/Entit\u00e4t\/Pr\u00fcfung\/Alarm durchf\u00fchren<\/li>\n\n\n\n<li>Benachrichtigungsabonnement finden<\/li>\n\n\n\n<li>Warnungen zustellen<\/li>\n\n\n\n<li>E-Mail erstellen<\/li>\n\n\n\n<li>Zustellung<\/li>\n\n\n\n<li>Tracken<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">W\u00e4hrend des Tests f\u00fcgten wir Coding hinzu, um in der Phase zur Warnungszustellung das spezielle Konto zu pr\u00fcfen, damit das Routing von Nachrichten zu Mailgun gestartet wird. Dieser Prozess war einfach, da nur sehr wenig Coding involviert war. So sieht ein Snippet aus:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"In die Zwischenablage kopieren\" data-clipboard-success-label=\"Kopiert\" data-clipboard-error-label=\"Kopieren nicht m\u00f6glich\" data-tooltip=\"In die Zwischenablage kopieren\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"In die Zwischenablage kopieren\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    if (tenantId === &#039;XXX&#039;) {rn    emailUtil.sendMailgunEmail(address, subject, body, { headers: headers }, function (err, res) {rn        var delta = (Date.now() - startTime);rnrn        accessLog.logAccess(ctx, &#039;mailgun&#039;, misc.getUnixTimestamp(), delta, err);rnrn        if (err) {rn            log.error(&#039;error performing email notification&#039;, { ctx: ctx, err: err });rn            callback(err);rn            return;rn        }rnrn        callback(null, &#039;Email successfully sent&#039;, body);rn    });rn} else {rn    \/\/ ...rn}\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Was passiert oben? Zun\u00e4chst rufen wir die Funktion sendMailgunEmail auf, um die Monitoring-Benachrichtigungs-E-Mail zuzustellen. In unserem Bestreben, ALLES zu messen, messen wir auch die Zeit, die f\u00fcr die Nutzung der Mailgun-API ben\u00f6tigt wird. Zudem gibt es eine Reihe von Wiederholungen, die dieses Coding mit einer Fallback-Option umschlie\u00dfen \u2013 eine der bew\u00e4hrten Best Practices, wenn man sich in einer Anwendung auf ein Drittanbietersystem verl\u00e4sst. M\u00f6chten Sie sehen, wie einfach die Funktion sendMailgunEmail ist? <\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"In die Zwischenablage kopieren\" data-clipboard-success-label=\"Kopiert\" data-clipboard-error-label=\"Kopieren nicht m\u00f6glich\" data-tooltip=\"In die Zwischenablage kopieren\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"In die Zwischenablage kopieren\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    exports.sendMailGunEmail = function(address, subject, body, options, callback) {rn    options = options || {};rn    options.headers = options.headers || {};rn    options.apiUrl = options.apiUrl || settings.MAILGUN_API_URL;rn    options.domain = options.domain || settings.MAILGUN_DOMAIN;rn    options.apiKey = options.apiKey || settings.MAILGUN_API_KEY;rn    options.fromAddress = options.fromAddress || settings.MAILGUN_FROM_ADDRESS;rn    options.testMode = options.testMode || settings.MAILGUN_TEST_MODE;rnrn    var url = options.apiUrl + options.domain + &#039;\/messages&#039;,rn        bodyObj, k, httpOptions;rnrn    httpOptions = { \/\/ 1) set up some defaultsrn        &#039;expected_status_codes&#039;: [200],rn        &#039;return_response&#039;: true,rn        &#039;parse_json&#039;: true,rn        &#039;username&#039;: &#039;api&#039;,rn        &#039;password&#039;: options.apiKey,rn        &#039;headers&#039;: { &#039;Content-Type&#039;: &#039;application\/x-www-form-urlencoded&#039; }rn    };rnrn    bodyObj = {rn        &#039;to&#039;: address,rn        &#039;subject&#039;: subject,rn        &#039;from&#039;: options.fromAddressrn    };rnrn    if (options.isHTML) { \/\/ 2) switch based on the content type we want to sendrn        bodyObj.html = body;rn    } else {rn        bodyObj.text = body;rn    }rnrn    for (k in options.headers) { \/\/ 3) merge in the headers so we can provide id\u2019s as headers in the emailsrn        if (options.headers.hasOwnProperty(k)) {rn            bodyObj[&#039;h:&#039; + k] = options.headers[k];rn        }rn    }rnrn    if (options.testMode) { \/\/ 4) enable sandbox testingrn        bodyObj[&#039;o:testmode&#039;] = true;rn    }rnrn    if (options.tags) { rn        \/\/ 5) set some tags to automatically pivot analytics for visibility.rn        \/\/ (we view reporting in the Mailgun control panel but data is also available via API or webhook)rn        bodyObj[&#039;o:tag&#039;] = options.tags;rn    }rnrn    body = querystring.stringify(bodyObj);rn    request(url, &#039;POST&#039;, body, httpOptions, callback);rn};\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">1) Die Request-Funktion abstrahiert den Umgang mit komplexen HTTP-Anfragen sowie die Verarbeitung von Antwortcodes. Daf\u00fcr werden erwartete <i>Antwortcodes<\/i> verwendet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2) Einfacher Umgang mit dem Versand von HTML, der normalerweise ziemlich m\u00fchsam ist. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3) Kopfzeilen zusammenf\u00fchren, was eine einfache M\u00f6glichkeit bietet, E-Mails anzureichern. Diese Kopfzeilen erm\u00f6glichen es uns, f\u00fcr jeden Nutzer ma\u00dfgeschneiderte E-Mails zu erstellen, die Details zu seiner Warnung wie alarmId, checkId und tenantId enthalten. \u00dcbergeben Sie fast alles in diesen Kopfzeilen, um Ihre E-Mails anzupassen \u2013 Informationen, die andernfalls den Textk\u00f6rper der E-Mail \u00fcberladen w\u00fcrden. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4) Einfaches Umlegen eines Schalters f\u00fcr den Versand von Test-E-Mails.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5) Benutzerdefinierte Tags erm\u00f6glichen das Tracking sowie analytische Facettierungen, die in unseren Produktions-Testszenarien zum Einsatz kommen. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sehen Sie, wie einfach das war. Wir haben die Erstellung, Zustellung und das Tracking von E-Mails mit Mailgun vollst\u00e4ndig automatisiert \u2013 etwas, das mit einem traditionellen DIY-Setup schwierig ist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zusammenfassung<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Wechsel zu einem gehosteten Angebot ist f\u00fcr jede Anwendung eine gro\u00dfe Entscheidung, insbesondere bei etwas so Kritischem wie E-Mail-Benachrichtigungen. Mit einem rigorosen Testabonnement und dem fantastischen Support des Mailgun-Teams in allen Belangen von der Einrichtung der DKIM-Eintr\u00e4ge bis zur API-Integration konnten wir alle E-Mail-Benachrichtigungen f\u00fcr Cloud Monitoring erfolgreich auf Mailgun umstellen. Zus\u00e4tzlicher Bonus,\u00a0<a href=\"\/?blog_category=life-post-acquisition-a-startup-engineers-perspective\" target=\"_tabs\" rel=\"noopener noreferrer\">das Mailgun-Team sitzt direkt neben mir<\/a>\u00a0;).\u00a0<i>PS: Wir\u00a0<\/i><a href=\"https:\/\/apply.workable.com\/mailgun\/?lng=en\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>Verst\u00e4rkung<\/i><\/a><i>!<\/i><\/p>\n\n\n\r\n    <aside data-content-type=\"longform\"  class=\"banner-block longform-spacings rounded-lg shadow-lg px-5 py-6 px-md-6 py-md-7 p-lg-7 bg-light\" data-theme=\"dark\" aria-labelledby=\"banner-block-block_5b7f680b19de1d80a6ee9e02b82fedba\">\r\n                    <p class=\"text-uppercase section-caption text-body-color\">\r\n                Registrieren            <\/p>\r\n                            <p class=\"h4 text-accent fw-bold\" id=\"banner-block-block_5b7f680b19de1d80a6ee9e02b82fedba\">\r\n                Loslegen ist ganz einfach. Und es ist kostenlos.            <\/p>\r\n                            <div class=\"mb-0 text-body-color\">\r\n                                    <div class=\"content-body mb-0 text-body-color\">Erfahren Sie, was Sie mit der weltbesten Plattform f\u00fcr E-Mail-Zustellung alles erreichen k\u00f6nnen.<\/div>\r\n                            <\/div>\r\n        \r\n        <div class=\"text-start mt-5\"><a href=\"https:\/\/signup.mailgun.com\/new\/signup\"  class=\"btn btn-secondary\" >Get started<\/a><\/div>\r\n    <\/aside>\r\n\r\n","protected":false},"excerpt":{"rendered":"<p>Dieser Beitrag wurde von Dan Di Spaltro, Director of Product bei Rackspace Cloud Monitoring, verfasst. Mit Cloud Monitoring \u00fcberwachen Sie jeden Server in jedem Rechenzentrum. So stellen Sie jederzeit sicher, dass Ihre Anwendungsinfrastruktur einwandfrei funktioniert. Bevor Dan das Engineering-Team von Cloud Monitoring leitete, war er Mitbegr\u00fcnder von Cloudkick. Das Y-Combinator-Startup, das sich auf die \u00dcberwachung von Cloud-Infrastruktur konzentrierte, wurde 2010 von Rackspace \u00fcbernommen.<\/p>\n","protected":false},"author":13,"featured_media":4843,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[23],"class_list":["post-25036","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-it-and-engineering"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mailgun-API: Nutzung in der Node.js-App Cloud Monitoring<\/title>\n<meta name=\"description\" content=\"W\u00e4hrend der \u00dcbernahme von Mailgun durch Rackspace bot sich Rackspace die einmalige Gelegenheit, seine neuesten Dienste in seinem Produkt Cloud Monitoring zu testen. Weiterlesen \u2013\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mailgun-API: Nutzung in der Node.js-App Cloud Monitoring\" \/>\n<meta property=\"og:description\" content=\"W\u00e4hrend der \u00dcbernahme von Mailgun durch Rackspace bot sich Rackspace die einmalige Gelegenheit, seine neuesten Dienste in seinem Produkt Cloud Monitoring zu testen. Weiterlesen \u2013\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T19:09:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\\\/\",\"name\":\"Mailgun-API: Nutzung in der Node.js-App Cloud Monitoring\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"datePublished\":\"2019-07-16T00:00:00+00:00\",\"dateModified\":\"2026-09-16T19:09:50+00:00\",\"description\":\"W\u00e4hrend der \u00dcbernahme von Mailgun durch Rackspace bot sich Rackspace die einmalige Gelegenheit, seine neuesten Dienste in seinem Produkt Cloud Monitoring zu testen. Weiterlesen \u2013\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Wie die Node.js-App Cloud Monitoring die Mailgun-API nutzt, um E-Mail-Workflows zu automatisieren\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Leistungsstarke Transaktions-E-Mail-APIs, mit denen Sie E-Mails senden, empfangen und nachverfolgen k\u00f6nnen, speziell f\u00fcr Entwickler konzipiert. Erfahren Sie noch heute mehr!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Transactional Email API Service For Developers | Mailgun\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mailgun-API: Nutzung in der Node.js-App Cloud Monitoring","description":"W\u00e4hrend der \u00dcbernahme von Mailgun durch Rackspace bot sich Rackspace die einmalige Gelegenheit, seine neuesten Dienste in seinem Produkt Cloud Monitoring zu testen. Weiterlesen \u2013","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/","og_locale":"de_DE","og_type":"article","og_title":"Mailgun-API: Nutzung in der Node.js-App Cloud Monitoring","og_description":"W\u00e4hrend der \u00dcbernahme von Mailgun durch Rackspace bot sich Rackspace die einmalige Gelegenheit, seine neuesten Dienste in seinem Produkt Cloud Monitoring zu testen. Weiterlesen \u2013","og_url":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","article_modified_time":"2026-09-16T19:09:50+00:00","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/","url":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/","name":"Mailgun-API: Nutzung in der Node.js-App Cloud Monitoring","isPartOf":{"@id":"https:\/\/www.mailgun.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","datePublished":"2019-07-16T00:00:00+00:00","dateModified":"2026-09-16T19:09:50+00:00","description":"W\u00e4hrend der \u00dcbernahme von Mailgun durch Rackspace bot sich Rackspace die einmalige Gelegenheit, seine neuesten Dienste in seinem Produkt Cloud Monitoring zu testen. Weiterlesen \u2013","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/wie-die-nodejs-app-cloud-monitoring-die-mailgun-api-nutzt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/de\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/de\/blog\/"},{"@type":"ListItem","position":3,"name":"Wie die Node.js-App Cloud Monitoring die Mailgun-API nutzt, um E-Mail-Workflows zu automatisieren"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/de\/#website","url":"https:\/\/www.mailgun.com\/de\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Leistungsstarke Transaktions-E-Mail-APIs, mit denen Sie E-Mails senden, empfangen und nachverfolgen k\u00f6nnen, speziell f\u00fcr Entwickler konzipiert. Erfahren Sie noch heute mehr!","publisher":{"@id":"https:\/\/www.mailgun.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/de\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.mailgun.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","width":512,"height":512,"caption":"Transactional Email API Service For Developers | Mailgun"},"image":{"@id":"https:\/\/www.mailgun.com\/de\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/25036","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":1,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/25036\/revisions"}],"predecessor-version":[{"id":25037,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/25036\/revisions\/25037"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/media\/4843"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/media?parent=25036"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog_category?post=25036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}