{"id":25074,"date":"2026-09-16T19:10:20","date_gmt":"2026-09-16T19:10:20","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/"},"modified":"2026-09-16T19:10:20","modified_gmt":"2026-09-16T19:10:20","slug":"datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/","title":{"rendered":"Ein datengesteuerter Ansatz, um die E-Mails von Nutzern aktuell zu halten"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><i>Dieser Blog wurde verfasst von\u00a0<\/i><a href=\"http:\/\/twitter.com\/poiyzy\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>Roy Young<\/i><\/a><i>. Roy, ein Ruby-Entwickler, der seine Skills weiterentwickelt an der\u00a0<\/i><a href=\"http:\/\/www.gotealeaf.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>Tealeaf Academy<\/i><\/a><i>.<\/i><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ah, die Tabelle \u201e<i>users\u201c<\/i>.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man k\u00f6nnte behaupten, dass sie eines der wichtigsten Assets eines Start-ups ist. Zynische Stimmen da drau\u00dfen k\u00f6nnen nicht glauben, dass\u00a0<a href=\"http:\/\/instagram.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Instagram<\/a>\u00a0(eine Foto-Sharing-App!) gekauft wurde f\u00fcr\u00a0<a href=\"http:\/\/thenextweb.com\/facebook\/2012\/10\/24\/final-cost-to-facebook-to-purchase-instagram-715-million\/\" target=\"_tabs\" rel=\"noopener noreferrer\">715 Millionen $ von Facebook<\/a>\u00a0oder dass Mailbox, ein mobiler E-Mail-Client f\u00fcr Gmail (der in vielerlei Hinsicht noch in der Beta-Phase steckte), Ger\u00fcchten zufolge\u00a0<a href=\"http:\/\/techcrunch.com\/2013\/03\/15\/mailbox-cost-dropbox-around-100-million\/\" target=\"_tabs\" rel=\"noopener noreferrer\">f\u00fcr bis zu 100 Millionen $ von Dropbox gekauft wurde<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese zynische Sichtweise resultiert oft aus einem kurzsichtigen Fokus nur auf das Produkt oder die Technologie. Das macht es leicht, solche Bewertungen als absurd abzutun. Es muss jedoch auch der Wert all dieser Nutzer und das Wachstum dieser Nutzerbasis ber\u00fccksichtigt werden. Diese astronomischen Bewertungen gehen immer mit einem Produkt einher, das eine gro\u00dfe und schnell wachsende Nutzerbasis hat. Daher liegt es auf der Hand, dass es eine gute Investition f\u00fcr Ihr Unternehmen ist, Ihre Nutzertabelle mit den korrekten Kontaktinformationen auf dem neuesten Stand zu halten. Der schwierige Teil ist nat\u00fcrlich, dieses Wachstum zu generieren \u2026 Sie m\u00fcssen also\u00a0<a href=\"http:\/\/www.kalzumeus.com\/2012\/12\/21\/i-wrote-a-book-on-conversion-optimization-for-software-companies\/\" target=\"_tabs\" rel=\"noopener noreferrer\">f\u00fcr diese Informationen bezahlen<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Ratschlag zum \u201eeinfachen Teil\u201c ist jedoch kostenlos. In diesem Beitrag spreche ich \u00fcber eine bew\u00e4hrte Methodik, um die E-Mails Ihrer Nutzer in einer Zeit aktuell zu halten, in der viele Menschen mehrere E-Mail-Adressen und Wegwerf-E-Mail-Adressen f\u00fcr viele ihrer Dienste haben.<\/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-7886\"><p class=\"h5 m-0\" id=\"toc-title-7886\">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=\"#anwendungslogik-zur-aufforderung-von-nutzern-ihre-e-mail-adresse-zu-aktualisieren\">Anwendungslogik zur Aufforderung von Nutzern, ihre E-Mail-Adresse zu aktualisieren<\/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=\"#versand-von-monatlichen-rechnungs-e-mails-mit-dem-heroku-scheduler\">Versand von monatlichen Rechnungs-E-Mails mit dem Heroku Scheduler<\/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=\"#benachrichtigung-ueber-e-mail-bounces-erhalten\">Benachrichtigung \u00fcber E-Mail-Bounces erhalten<\/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=\"#anzeige-des-flash-screens-fuer-nutzer-zur-aktualisierung-ihrer-e-mail-adresse\">Anzeige des Flash-Screens f\u00fcr Nutzer zur Aktualisierung ihrer E-Mail-Adresse<\/a><\/div><\/div><\/nav>\n\n\n<h2 class=\"wp-block-heading\">Anwendungslogik zur Aufforderung von Nutzern, ihre E-Mail-Adresse zu aktualisieren<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Sie eine E-Mail an eine E-Mail-Adresse senden, die nicht mehr existiert, sendet die Empf\u00e4ngerseite (z.\u00a0B. Gmail oder Yahoo) diese als Bounce an Sie zur\u00fcck. Wenn Sie diese Bounces erfassen, kann Ihre App entsprechend reagieren. So entsteht eine gro\u00dfartige Nutzererfahrung, w\u00e4hrend Ihre Kundendatenbank aktuell bleibt. Dieser Blog skizziert eine auf Heroku erstellte Beispielanwendung. Sie nutzt Mailgun, um diese E-Mail-Bounces zu erfassen, damit Nutzer mit fehlerhaften E-Mail-Adressen weiterhin monatliche E-Mails mit Rechnungen erhalten k\u00f6nnen. Die gleiche Logik l\u00e4sst sich jedoch auf all Ihre E-Mails anwenden, um sicherzustellen, dass Ihre Nutzer engagiert bleiben und per E-Mail \u00fcber Ihr Unternehmen auf dem Laufenden gehalten werden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"450\" height=\"750\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image.png\" alt=\"Workflow, um Kontakte auf dem neuesten Stand zu halten: ein 7-stufiger Prozess f\u00fcr den Umgang mit gebouncten E-Mails und die Aufforderung zu Nutzer-Updates\" class=\"wp-image-11470\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image.png 450w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-180x300.png 180w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ich habe eine Demo-Website f\u00fcr diesen Artikel erstellt und den Quellcode hier zur Verf\u00fcgung gestellt:\u00a0<a href=\"https:\/\/github.com\/poiyzy\/mailgun_example\" target=\"_tabs\" rel=\"noopener noreferrer\">GitHub<\/a>. Diese Demo f\u00fchrt Neulinge durch den gesamten Prozess, um diese Funktionalit\u00e4t einzurichten. Klicken Sie\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/api-bounces.html\" target=\"_tabs\" rel=\"noopener noreferrer\">hier<\/a>\u00a0wenn Sie direkt zur Integration von Bounce-Webhooks in Ihre App springen m\u00f6chten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Versand von monatlichen Rechnungs-E-Mails mit dem Heroku Scheduler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Um monatliche Rechnungen an Ihre Nutzer zu senden, m\u00fcssen Sie Code schreiben, um:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Individuelle Rechnungs-E-Mails an Hunderte, Tausende oder Millionen Personen aus Ihrer Kundschaft zu versenden.<\/li>\n\n\n\n<li>Den tats\u00e4chlichen Versand dieser E-Mails zu planen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Lassen Sie uns dies der Reihe nach im Detail betrachten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><i>Individuelle Rechnungs-E-Mails bereitstellen<\/i><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die Zwecke dieses Tutorials gehe ich davon aus, dass Sie bereits \u00fcber ein Mailgun-Konto verf\u00fcgen. Von dort aus senden Sie die Liste Ihrer Kundschaft an Mailgun, zusammen mit allen Variablen, die Sie als JSON-Datei dynamisch in die E-Mails einf\u00fcgen m\u00f6chten, sowie dem HTML- oder Text-Body der E-Mail. Hier ist der Code.<\/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                                    class MailgunGateway include Rails.application.routes.url_helpers def send_batch_message(users) RestClient.post(messaging_api_end_point, from: &quot;Mailgun Demo &quot;, to: users.map(&amp;:email).join(&quot;, &quot;), subject: &quot;Monthly Billing Info&quot;, html: billing_info_text, :&quot;h:Reply-To&quot; =&gt; &quot;billing@#{ENV[&quot;mailgun_domain_name&quot;]}&quot;, :&quot;recipient-variables&quot; =&gt; recipient_variables(billing_recipients) ) end private def api_key @api_key ||= ENV[&quot;mailgun_api_key&quot;] end def messaging_api_end_point @messaging_api_end_piont ||= &quot;https:\/\/api:#{api_key}@api.mailgun.net\/v2\/#{ENV[&quot;mailgun_domain_name&quot;]}\/messages&quot; end def billing_recipients @users ||= User.where(locked: false) end def recipient_variables(recipients) vars = recipients.map do |recipient| &quot;&quot;#{recipient.email}&quot;: {&quot;name&quot;:&quot;#{recipient.fullname}&quot;}&quot; end &quot;{#{vars.join(&#039;, &#039;)}}&quot; end def billing_info_text &lt;&lt;-EMAIL  Hi %recipient.name%, &lt;p&gt; Your bill for the current month is now available, please click on &lt;br \/&gt; #{billing_url} &lt;br \/&gt; to see details. &lt;\/p&gt; &lt;p&gt;Reply to this email directly&lt;\/p&gt;  EMAIL end end\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\">Sehen wir uns an, was wir gemacht haben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In der Methode\u00a0<i>sendbatchmessages<\/i>\u00a0verwenden wir Empf\u00e4ngervariablen, damit wir Variablen definieren k\u00f6nnen, um jede E-Mail individuell anzupassen. Sie werden feststellen, dass wir den Vornamen des Nutzers in die E-Mail einf\u00fcgen. Sie k\u00f6nnten eine Rechnungs-E-Mail verfassen, die Details wie Kontonummer, Rechnungskonto oder \u00c4hnliches enth\u00e4lt, aber ich halte es hier einfach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><i>Automatischer Versand monatlicher Abrechnungs-E-Mails mit dem Heroku Scheduler<\/i><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sobald wir unsere Methode zur Erstellung und zum Versand von E-Mails \u00fcber Mailgun haben, m\u00fcssen wir Code schreiben, der diese Methode \u00fcber einen Trigger automatisch ausl\u00f6st. Ich habe mich entschieden, diese App auf Heroku bereitzustellen, und verwende den Heroku Scheduler, weil er seinen Zweck erf\u00fcllt, ein kostenloses Add-on ist und sich leicht integrieren l\u00e4sst.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Heroku Scheduler f\u00fchrt einen bestimmten Rake-Task zu einer festgelegten Zeit aus. Hier m\u00fcssen wir also einen Rake-Task erstellen, um Abrechnungs-E-Mails \u00fcber Mailgun in\u00a0<i>lib\/tasks\/scheduler.rake<\/i>\u00a0zu versenden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Erstens: Wenn wir Abrechnungsrechnungen an Nutzer senden, m\u00fcssen wir die E-Mail-Adressen der Kundschaft finden, der wir die Rechnung stellen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Im sehr einfachen Datenbankschema dieser Beispiel-App gibt es das Attribut\u00a0<i>:locked<\/i>, das auf \u201eTrue\u201c gesetzt wird, wenn eine E-Mail zuvor einen Bounce verursacht hat (dazu unten mehr). Unsere Abfrage ruft also einfach alle Nutzer ab, bei denen dieses Feld auf \u201eFalse\u201c steht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um die E-Mail tats\u00e4chlich zu versenden, verwende ich Mailgun\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/user_manual.html?highlight=batch%20sending#batch-sending\" target=\"_tabs\" rel=\"noopener noreferrer\">Batch-Versand<\/a>. Da die maximal zul\u00e4ssige Anzahl der Empf\u00e4nger pro API-Aufruf 1.000 betr\u00e4gt, verwenden wir\u00a0<i>findinbatches<\/i>, um Abrechnungs-E-Mails in Batches von 1.000 Empf\u00e4ngern an Mailgun zu senden.<\/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                                    desc &quot;This task is called by the Heroku scheduler add-on&quot;\r\ntask :send_billing_info =&gt; :environment do\r\n  if DateTime.now.mday == 1\r\n    User.where(locked: false).find_in_batches(batch_size: 1000) do |group|\r\n      MailgunGateway.new.send_batch_message(group)\r\n    end\r\n  end\r\nend\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\">Da die Einstellung \u201eFREQUENCY\u201c im Heroku Scheduler nur drei Optionen bietet\u00a0\u2013 \u201et\u00e4glich, st\u00fcndlich, alle 10 Minuten\u201c\u00a0\u2013, m\u00fcssen wir pr\u00fcfen, ob der aktuelle Tag der erste Tag des Monats ist. Das tun wir mit\u00a0<code>if DateTime.now.mday == 1.<\/code>\u00a0Wenn ja, wird die E-Mail versendet. Wenn nicht, keine E-Mail.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Benachrichtigung \u00fcber E-Mail-Bounces erhalten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn eine E-Mail einen Bounce verursacht, sendet Mailgun \u00fcber den Bounce-Webhook einen POST an unsere App. Sie m\u00fcssen die Callback-URL unter \u201eBounces\u201c im Mailgun Control Panel festlegen. In dieser Demo lautet meine Callback-URL\u00a0<code>\u201ehttp:\/\/mailgun-demo.herokuapp.com\/api\/bounced_mails\u201c<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn die App die Bounce-Benachrichtigung erh\u00e4lt, sucht sie die E-Mail-Adresse in der Kundendatenbank und setzt den Status des Nutzers auf \u201elocked\u201c. Dadurch sendet die App keine Abrechnungs-E-Mail mehr an diesen Nutzer, bis er seine E-Mail-Adresse aktualisiert hat.<\/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                                    class Api::BouncedMailsController &lt; ApplicationController\r\n  skip_before_filter :verify_authenticity_token\r\n  def create\r\n    if verify(ENV[&quot;mailgun_api_key&quot;], params[:token], params[:timestamp], params[:signature])\r\n      user = User.find_by_email(params[:recipient])\r\n      if user &amp;&amp; params[:event] == &quot;bounced&quot;\r\n        user.lock!\r\n      end\r\n      head(200)\r\n    end\r\n  end\r\n  private\r\n  def verify(api_key, token, timestamp, signature)\r\n    signature == OpenSSL::HMAC.hexdigest(\r\n      OpenSSL::Digest::Digest.new(&#039;sha256&#039;),\r\n      api_key,\r\n      &#039;%s%s&#039; % [timestamp, token])\r\n  end\r\nend\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\">Das\u00a0<i>user.lock!<\/i>\u00a0setzt den Nutzerstatus auf \u201elocked\u201c, sodass unser Rake-Task niemals E-Mails an diesen Nutzer sendet. Diese Methode ist im User-Modell festgelegt.<\/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                                    class User &lt; ActiveRecord::Base\r\n  \u2026\r\n  def lock!\r\n    self.locked = true\r\n    save(validate: false)\r\n  end\r\nend\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\">Die Methode\u00a0<i>verify<\/i>\u00a0dient zur \u00dcberpr\u00fcfung, ob der Webhook von Mailgun stammt. Andernfalls k\u00f6nnten Dritte einen gef\u00e4lschten POST senden, um die Nutzer in Ihrer App zu sperren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Weitere Details zur Konfiguration von Webhooks finden Sie in der Mailgun-Dokumentation\u00a0\u2013\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/api-webhooks.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Events\/Webhooks<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Am Ende geben wir eine 200-Kopfzeile zur\u00fcck, um Mailgun mitzuteilen, dass diese Interaktion erfolgreich war. Andernfalls geht Mailgun davon aus, dass unser Server offline ist, und versucht weiterhin, unseren Webhook aufzurufen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/gist.github.com\/poiyzy\/5045565#displaying-the-flash-screen-for-a-user-to-update-their-email\" target=\"_tabs\" rel=\"noopener noreferrer\"><\/a>Anzeige des Flash-Screens f\u00fcr Nutzer zur Aktualisierung ihrer E-Mail-Adresse<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sobald die App wei\u00df, welche Nutzer eine fehlerhafte E-Mail-Adresse haben, m\u00fcssen wir bei ihrer n\u00e4chsten Anmeldung einen Flash-Screen anzeigen. Dieser fordert sie auf, die hinterlegten Kontaktinformationen zu \u00fcberpr\u00fcfen.<\/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                                    class SessionsController &lt; ApplicationController\r\n  def new\r\n    redirect_to home_path if current_user\r\n  end\r\n  def create\r\n    user = User.find_by_email(params[:email])\r\n    if user &amp;&amp; user.authenticate(params[:password])\r\n      session[:user_id] = user.id\r\n      if user.locked\r\n        flash[:error] = &quot;Your Email Address is invalid, please update it.&quot;\r\n        redirect_to edit_user_path(current_user)\r\n      else\r\n        redirect_to home_path\r\n      end\r\n    else\r\n      flash[:error] = &quot;Incorrect email or password. Please try again.&quot;\r\n      redirect_to sign_in_path\r\n    end\r\n  end\r\n  def destroy\r\n    session[:user_id] = nil\r\n    redirect_to root_path\r\n  end\r\nend\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\">Nachdem sie ihre E-Mail-Adresse aktualisiert haben, setzen wir das Attribut \u201elocked\u201c wieder auf \u201efalse\u201c, damit sie weiterhin E-Mails erhalten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das war&#8217;s. Wenn nun die E-Mails Ihrer Nutzer einen Bounce verursachen, k\u00f6nnen Sie sie auffordern, ihre Informationen zu aktualisieren. Dies bietet eine gro\u00dfartige Nutzererfahrung mit dem zus\u00e4tzlichen Vorteil, dass Ihre Kundendaten aktuell bleiben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dieser Blog wurde von Roy Young verfasst. Roy ist ein Ruby-Entwickler, der seine Skills an der Tealeaf Academy weiterentwickelt.<\/p>\n<p>Ah, die Tabelle \u201eusers\u201c.<\/p>\n","protected":false},"author":13,"featured_media":4843,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[23],"class_list":["post-25074","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>Datengesteuerter Ansatz, um die E-Mails von Nutzern aktuell zu halten - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"Es liegt auf der Hand, dass es eine gute Investition f\u00fcr Ihr Unternehmen ist, Ihre Nutzertabelle mit den korrekten Kontaktinformationen auf dem neuesten Stand zu halten. 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\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Datengesteuerter Ansatz, um die E-Mails von Nutzern aktuell zu halten - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Es liegt auf der Hand, dass es eine gute Investition f\u00fcr Ihr Unternehmen ist, Ihre Nutzertabelle mit den korrekten Kontaktinformationen auf dem neuesten Stand zu halten. Weiterlesen \u2013\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\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\\\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\\\/\",\"name\":\"Datengesteuerter Ansatz, um die E-Mails von Nutzern aktuell zu halten - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"datePublished\":\"2026-09-16T19:10:20+00:00\",\"description\":\"Es liegt auf der Hand, dass es eine gute Investition f\u00fcr Ihr Unternehmen ist, Ihre Nutzertabelle mit den korrekten Kontaktinformationen auf dem neuesten Stand zu halten. Weiterlesen \u2013\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\\\/#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\\\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\\\/#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\":\"Ein datengesteuerter Ansatz, um die E-Mails von Nutzern aktuell zu halten\"}]},{\"@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":"Datengesteuerter Ansatz, um die E-Mails von Nutzern aktuell zu halten - Transactional Email API Service For Developers | Mailgun","description":"Es liegt auf der Hand, dass es eine gute Investition f\u00fcr Ihr Unternehmen ist, Ihre Nutzertabelle mit den korrekten Kontaktinformationen auf dem neuesten Stand zu halten. 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\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/","og_locale":"de_DE","og_type":"article","og_title":"Datengesteuerter Ansatz, um die E-Mails von Nutzern aktuell zu halten - Transactional Email API Service For Developers | Mailgun","og_description":"Es liegt auf der Hand, dass es eine gute Investition f\u00fcr Ihr Unternehmen ist, Ihre Nutzertabelle mit den korrekten Kontaktinformationen auf dem neuesten Stand zu halten. Weiterlesen \u2013","og_url":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","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\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/","url":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/","name":"Datengesteuerter Ansatz, um die E-Mails von Nutzern aktuell zu halten - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","datePublished":"2026-09-16T19:10:20+00:00","description":"Es liegt auf der Hand, dass es eine gute Investition f\u00fcr Ihr Unternehmen ist, Ihre Nutzertabelle mit den korrekten Kontaktinformationen auf dem neuesten Stand zu halten. Weiterlesen \u2013","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/#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\/datengesteuerter-ansatz-e-mails-nutzern-aktuell-halten\/#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":"Ein datengesteuerter Ansatz, um die E-Mails von Nutzern aktuell zu halten"}]},{"@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\/25074","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":0,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/25074\/revisions"}],"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=25074"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog_category?post=25074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}