{"id":25634,"date":"2026-09-22T13:34:36","date_gmt":"2026-09-22T13:34:36","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/"},"modified":"2026-09-22T13:34:36","modified_gmt":"2026-09-22T13:34:36","slug":"eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/","title":{"rendered":"Eingehende E-Mails wie ein Profi verarbeiten [Mailgun-API 2.0]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">So weit zur\u00fcckliegend wirkt unser Blog wie ein altes Familienfotoalbum. Dieser Beitrag erschien urspr\u00fcnglich bereits im Jahr 2011.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fr\u00fcher war der E-Mail-Versand schwierig, aber mit der Mailgun\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/api_reference.html\" target=\"_tabs\" rel=\"noopener noreferrer\">E-Mail-Versand-API<\/a>\u00a0haben wir SMTP und MIME hinter uns gelassen und den Vorgang zu einer trivialen und geradezu angenehmen Erfahrung gemacht.<\/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-9586\"><p class=\"h5 m-0\" id=\"toc-title-9586\">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=\"#mailgun-routes-als-loesung\">Mailgun Routes als L\u00f6sung<\/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=\"#eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\">Eingehende E-Mails wie ein Profi verarbeiten [Mailgun-API 2.0]<\/a><\/div><\/div><\/nav>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-5059\" width=\"190\" height=\"143\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/incoming.jpeg\" alt=\"Baby with helmet with the word &quot;Incoming!&quot;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Ihre Anwendung jedoch E-Mail-Konversationen f\u00fchren muss, wie es bei Enterprise-Apps oft der Fall ist, ist der Versand nicht einmal die halbe Miete. Angenommen, Sie m\u00f6chten einen E-Mail-basierten Bot entwickeln, der sich in den Workflow Ihrer Enterprise-App integrieren l\u00e4sst. Bedenken Sie die Hindernisse, die Sie \u00fcberwinden m\u00fcssten:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Transportprobleme<\/b>. Die eingehenden Nachrichten m\u00fcssen Ihre App auf irgendeinem Weg erreichen. Das bedeutet, dass irgendwo ein MX-Eintrag vorhanden sein muss, der auf einen E-Mail-Server verweist, welcher in der Lage ist, eingehende E-Mails an Ihren Code weiterzuleiten. Dabei gibt es viele Stolpersteine. Einer davon ist, dass Sie wahrscheinlich korrekte Bounces f\u00fcr ein \u201eung\u00fcltiges Postfach\u201c generieren m\u00f6chten, um Absendende zu benachrichtigen, falls diese sich bei der Adresse vertippt haben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Probleme bei der Spam-Verarbeitung<\/b>. Sobald Sie E-Mails f\u00fcr eine bestimmte MX-Domain akzeptieren, m\u00fcssen Sie sich dar\u00fcber im Klaren sein, dass der Gro\u00dfteil der eingehenden E-Mails fr\u00fcher oder sp\u00e4ter Spam sein wird. Und selbst wenn Ihre E-Mail-Annahmerichtlinie Allowlist-basiert ist, ist es nicht immer w\u00fcnschenswert, dass sich Ihre App mit Spam-Angriffen auseinandersetzen muss.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Probleme beim MIME-Parsing.<\/b>\u00a0Wir haben dies bereits angesprochen, aber das Parsen von MIME ist in den meisten Programmiersprachen eine m\u00fchsame Aufgabe. Bibliotheken f\u00fcr das MIME-Parsing sind nicht zahlreich und viele von ihnen weisen eine geringe Toleranz gegen\u00fcber realem Datenverkehr auf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Nachrichteninhalt.<\/b>\u00a0Ihre Probleme beim Parsen gehen weit \u00fcber MIME hinaus. Die meisten eingehenden E-Mails sind in der Regel Antworten auf zuvor gesendete Nachrichten, und Sie m\u00f6chten meistens die riesigen zitierten Teile entfernen. Oft ist es zudem erw\u00fcnscht, die Signatur einer Person aus dem Nachrichtentext zu extrahieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das wirkt ziemlich abschreckend f\u00fcr etwas so Einfaches, wie einen Textausschnitt in eine Anwendung zu integrieren. W\u00e4re es nicht sch\u00f6n, etwas \u00c4hnliches wie\u00a0<a href=\"http:\/\/www.sinatrarb.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Sinatra<\/a>\u00a0oder\u00a0<a href=\"http:\/\/flask.pocoo.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Flask<\/a>\u00a0zu haben und in Python einfach schreiben zu k\u00f6nnen:<\/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                                Python                            <\/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-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                     @email_in(&quot;.*@myapp.com&quot;)rn    def incoming_message(message_obj):rn      # access various parts of the fully parsed incoming message:rn      message_obj.bodyrn      message_obj.body_without_quoted_textrn      message_obj.sender_signaturern    # stuff that matters:rn      make_profit_from(message_obj)\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 Ruby-Community liebt Bl\u00f6cke. Die Ruby-Community w\u00fcrde sicher gerne Folgendes schreiben:<\/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                                Ruby                            <\/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-Ruby\">\r\n                                <code id=\"code_0_content\" class=\"language-Ruby\">\r\n\r\n                                     email_in &quot;.*@myapp.com&quot; do |message_obj|rn      # sweet profit-making code...rn    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\">Die Idee hinter diesen Codebeispielen \u00e4hnelt dem Routing-Mechanismus moderner MVC-Frameworks. Anstatt jedoch URLs mit Controller-Aktionen abzugleichen, m\u00f6chten wir Routen definieren, die ein Empf\u00e4ngeradressen-Muster einer Funktion in Ihrem Code zuordnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Doch wie gehen Sie bei der Implementierung von email_in() angesichts der oben aufgef\u00fchrten Schwierigkeiten vor?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mailgun Routes als L\u00f6sung<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wir haben diese speziell f\u00fcr diesen Anwendungsfall entwickelt. Sie bieten bei Weitem den angenehmsten Weg, eine App f\u00fcr bidirektionales E-Mail-Messaging zu erstellen. Vertrauen Sie uns, wir sind E-Mail-Experten.\u00a0\u00a0Aber genug der Worte, lassen Sie uns zur Tat schreiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Definieren wir zun\u00e4chst eine neue Route im Mailgun-Control-Panel. Diese Route gleicht die Empfangsadresse mit dem regul\u00e4ren Ausdruck \u201e.*@myapp.com\u201c ab. Bei einer \u00dcbereinstimmung f\u00fchrt sie zwei Dinge aus:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sie parst die Nachricht und sendet sie per POST an die URL \u201e\/emailin\u201c Ihrer App.<\/li>\n\n\n\n<li>Zudem leitet sie eine Kopie der Nachricht an ein Entwicklerpostfach weiter, beispielsweise developer@myapp.com<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-5060\" width=\"500\" height=\"229\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tumblr_lub6qetjH61qdp23h.png\" alt=\"Mailgun&apos;s control panel\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tumblr_lub6qetjH61qdp23h.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tumblr_lub6qetjH61qdp23h-300x137.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nun k\u00f6nnen wir Nachrichten an @myapp.com verarbeiten, indem wir den folgenden Code in die Web-App einf\u00fcgen:<\/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                                    @app.route(&quot;\/mailin&quot;, methods=[&quot;POST&quot;])  rndef mailin():  rn    # see if the message is spam:rn    is_spam = request.form[&#039;X-Mailgun-SFlag&#039;] == &#039;Yes&#039;rnrn    # access some of the email parsed values:rn    request.form[&#039;From&#039;]rn    request.form[&#039;To&#039;]rn    request.form[&#039;subject&#039;]rnrn    # stripped text does not include the original (quoted) message, only whatrn    # a user has typed:rn    request.form[&#039;stripped-text&#039;]rn    request.form[&#039;stripped-signature&#039;]rnrn    # enumerate through all attachments in the message and savern    # them to disk with their original filenames:rn    for attachment in request.files.values():rn        attachment.filenamern        data = attachment.stream.read()rn        with open(attachment.filename, &quot;w&quot;) as f:rn            f.write(data)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<h2 class=\"wp-block-heading\">Eingehende E-Mails wie ein Profi verarbeiten [Mailgun-API 2.0]<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Senden wir mit Gmail eine Testnachricht an unsere Web-App und sehen uns an, was per POST \u00fcbermittelt wird.<br>\nHier ist der Screenshot der Nachricht, wie sie in GMail angezeigt wird. Beachten Sie, dass sie den eigentlichen Textk\u00f6rper des Geschriebenen (stripped-text), die Signatur und den zitierten Teil enth\u00e4lt, welcher in den meisten F\u00e4llen irrelevant ist:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-5061\" width=\"500\" height=\"344\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/ev.png\" alt=\"Test email on web app from Ev Kontsevoy\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/ev.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/ev-300x206.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die per POST gesendeten Daten werden unten als ausgegebener Python-MultiDict-Request dargestellt. Beachten Sie, dass Mailgun zus\u00e4tzlich zu k\u00fcnstlichen Parametern wie \u201erecipient\u201c oder \u201estripped-text\u201c auch alle MIME-Kopfzeilen per POST an die App sendet, sodass Sie vollen Zugriff auf alles haben:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>POST-Parameter (im Protokoll als Python-MultiDict ausgegeben)<\/b><\/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                                    (&#039;From&#039;, u&#039;Ev Kontsevoy &#039;),rn(&#039;sender&#039;, u&#039;ev@mailgunhq.com&#039;),rn(&#039;To&#039;, u&#039;Awesome Bot &#039;),rn(&#039;attachment-count&#039;, u&#039;1&#039;),rn(&#039;Subject&#039;, u&#039;Re: Your application&#039;)])rn(&#039;stripped-text&#039;, u&#039;My application is attached.nThanks.&#039;),rn(&#039;stripped-html&#039;, u&#039;HTML version of stripped-text&#039;),rn(&#039;body-html&#039;, u&#039;[full html version of the message]&#039;),rn(&#039;body-plain&#039;, u&#039;[full text version of the message]&#039;),rn(&#039;stripped-signature&#039;, u&#039;-- nEv Kontsevoy,nCo-founder and CEO of Mailgun.net  - the emailnplatform for developers.&#039;),rn(&#039;recipient&#039;, u&#039;bot@hello.mailgun.org&#039;),rn(&#039;subject&#039;, u&#039;Re: Your application&#039;),rn(&#039;timestamp&#039;, u&#039;1320695889&#039;),rn(&#039;signature&#039;, u&#039;b8869291bd72f1ad38238429c370cb13a109eab01681a31b1f4a2751df1e3379&#039;),rn(&#039;token&#039;, u&#039;9ysf1gfmskxxsp1zqwpwrqf2qd4ctdmi5e$k-ajx$x0h846u88&#039;),rn(&#039;In-Reply-To&#039;, u&#039;Message-Id-of-original-message&#039;),rn(&#039;Date&#039;, u&#039;Mon, 7 Nov 2011 11:58:06 -0800&#039;),rn(&#039;Message-Id&#039;, u&#039;message-id-goes-here&#039;),rn(&#039;X-Originating-Ip&#039;, u&#039;[216.156.80.78]&#039;),rnrn# NOTE: ALL message fields are parsed and pasted. If some fields (like &quot;Cc&quot;) arern# missing here it only means they were absent from the message.\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\"><strong>Per POST gesendete Dateien:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>('attachment-1', FileStorage: 'application.pdg')<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fassen wir zusammen. Was haben wir hier?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Eingehender E-Mail-Datenverkehr wird mit einem regul\u00e4ren Ausdruck abgeglichen, der auf die Empfangsadresse der Nachricht angewendet wird.<\/li>\n\n\n\n<li>\u00dcbereinstimmende Nachrichten werden geparst, auf Spam gepr\u00fcft und per HTTP POST an die URL Ihrer Anwendung gesendet.<\/li>\n\n\n\n<li>Zitierte Teile der Nachricht werden abgetrennt (stripped), die Signatur wird erkannt.<\/li>\n\n\n\n<li>Wenn Ihre Anwendung ausgefallen ist und nicht antwortet, werden Nachrichten in die Warteschlange gestellt, und es erfolgen bis zu drei Tage lang weitere Zustellversuche.<\/li>\n\n\n\n<li>Zus\u00e4tzlich k\u00f6nnen \u00fcbereinstimmende Nachrichten optional in einem Postfach zu Archivierungs-, Backup- oder Debugging-Zwecken gespeichert werden.<\/li>\n\n\n\n<li>Diese Komplexit\u00e4ten spielen f\u00fcr Sie keine Rolle mehr. Sie k\u00f6nnen sich ganz auf das Schreiben von profitablem Code konzentrieren.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u00dcbrigens kann die Manipulation von E-Mail-Routen\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/api-routes.html\" target=\"_tabs\" rel=\"noopener noreferrer\">programmatisch \u00fcber eine API erfolgen<\/a>. Dies erm\u00f6glicht es Ihnen, einen magischen Flask\/Sinatra-\u00e4hnlichen @email_in()-Dekorator zu erstellen, der alles miteinander verkn\u00fcpft.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mailgun Routes k\u00f6nnen mehr als nur einen einfachen Abgleich der Empfangsadresse. Sie unterst\u00fctzen Erfassungen \u00fcber regul\u00e4re Ausdr\u00fccke, das \u201eMatch-if-nothing-else-matched\u201c-Verhalten, sie verf\u00fcgen \u00fcber Ausf\u00fchrungspriorit\u00e4ten\u00a0\u2013 im Grunde handelt es sich um eine einfache Programmiersprache f\u00fcr das E-Mail-Routing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das waren die Grundlagen. Einfach gro\u00dfartig. Legen wir also los und befreien die Welt von unsinnigen \u201eno-reply@\u201c-E-Mails. Es ist h\u00f6chste Zeit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Herzliche Gr\u00fc\u00dfe<br>\n\u2013<br>\\nMailgunners<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edit: Beteiligen Sie sich gerne an der\u00a0<a href=\"http:\/\/news.ycombinator.com\/item?id=3208376\" target=\"_tabs\" rel=\"noopener noreferrer\">Diskussion auf HN<\/a><\/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_66309fc1b2fa5c9c5a7e71f8429c3cd4\">\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_66309fc1b2fa5c9c5a7e71f8429c3cd4\">\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>So weit zur\u00fcckliegend wirkt unser Blog wie ein altes Familienfotoalbum. Dieser Beitrag erschien urspr\u00fcnglich bereits im Jahr 2011.<\/p>\n","protected":false},"author":13,"featured_media":4555,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[22],"class_list":["post-25634","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-product"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Eingehende E-Mails wie ein Profi verarbeiten Mailgun-API 2.0 - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"Bew\u00e4ltigen Sie all Ihre Anforderungen an eingehende E-Mails mit dem Inbound Routing von Mailgun. M\u00f6chten Sie erfahren, wie unser Routing entstanden ist? 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\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Eingehende E-Mails wie ein Profi verarbeiten Mailgun-API 2.0 - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Bew\u00e4ltigen Sie all Ihre Anforderungen an eingehende E-Mails mit dem Inbound Routing von Mailgun. M\u00f6chten Sie erfahren, wie unser Routing entstanden ist? Weiterlesen \u2013\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/\" \/>\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-Product.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=\"5\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\\\/product\\\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\\\/\",\"name\":\"Eingehende E-Mails wie ein Profi verarbeiten Mailgun-API 2.0 - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"datePublished\":\"2026-09-22T13:34:36+00:00\",\"description\":\"Bew\u00e4ltigen Sie all Ihre Anforderungen an eingehende E-Mails mit dem Inbound Routing von Mailgun. M\u00f6chten Sie erfahren, wie unser Routing entstanden ist? Weiterlesen \u2013\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\\\/#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\":\"Eingehende E-Mails wie ein Profi verarbeiten [Mailgun-API 2.0]\"}]},{\"@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":"Eingehende E-Mails wie ein Profi verarbeiten Mailgun-API 2.0 - Transactional Email API Service For Developers | Mailgun","description":"Bew\u00e4ltigen Sie all Ihre Anforderungen an eingehende E-Mails mit dem Inbound Routing von Mailgun. M\u00f6chten Sie erfahren, wie unser Routing entstanden ist? 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\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/","og_locale":"de_DE","og_type":"article","og_title":"Eingehende E-Mails wie ein Profi verarbeiten Mailgun-API 2.0 - Transactional Email API Service For Developers | Mailgun","og_description":"Bew\u00e4ltigen Sie all Ihre Anforderungen an eingehende E-Mails mit dem Inbound Routing von Mailgun. M\u00f6chten Sie erfahren, wie unser Routing entstanden ist? Weiterlesen \u2013","og_url":"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/","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-Product.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/","url":"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/","name":"Eingehende E-Mails wie ein Profi verarbeiten Mailgun-API 2.0 - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","datePublished":"2026-09-22T13:34:36+00:00","description":"Bew\u00e4ltigen Sie all Ihre Anforderungen an eingehende E-Mails mit dem Inbound Routing von Mailgun. M\u00f6chten Sie erfahren, wie unser Routing entstanden ist? Weiterlesen \u2013","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/eingehende-e-mails-wie-ein-profi-verarbeiten-mailgun-api-2-0\/#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":"Eingehende E-Mails wie ein Profi verarbeiten [Mailgun-API 2.0]"}]},{"@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\/25634","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\/25634\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/media\/4555"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/media?parent=25634"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog_category?post=25634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}