{"id":20832,"date":"2019-07-16T00:00:00","date_gmt":"2019-07-16T00:00:00","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/"},"modified":"2026-09-16T02:51:50","modified_gmt":"2026-09-16T02:51:50","slug":"turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/","title":{"rendered":"Open-Source-Mailinglisten-Applet mit dem Mailgun-PHP-SDK"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><i>This post was written by Jeff Reifman, a Seattle-based\u00a0<\/i><a href=\"https:\/\/jeffreifman.com\/consulting\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>technology consultant<\/i><\/a><i>\u00a0and founder of\u00a0<\/i><a href=\"https:\/\/geogram.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>Geogram<\/i><\/a><i>, a free group email service for local places powered by Mailgun. Follow him at\u00a0<\/i><a href=\"https:\/\/twitter.com\/intent\/user?screen_name=reifman\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>@reifman<\/i><\/a><i>.<\/i><\/p>\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-1147\"><p class=\"h5 m-0\" id=\"toc-title-1147\">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=\"#introduction-to-mailgun-lists\">Introduction to Mailgun Lists<\/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=\"#how-to-install-and-use-the-open-source-application\">How to install and use the open source application<\/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=\"#how-to-use-the-mailgun-mailing-list-api\">How to use the Mailgun Mailing List 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=\"#initializing-the-mailgun-php-sdk\">Initializing the Mailgun PHP SDK<\/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=\"#synchronizing-lists-and-list-members\">Synchronizing lists and list members<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">06<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#creating-a-list\">Creating a list<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">07<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#importing-members-to-the-list\">Importing members to the list<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">08<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#sending-a-message\">Sending a message<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">09<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#using-the-public-subscribe-form\">Using the Public Subscribe Form<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">10<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#adopting-this-code-for-php-not-yii\">Adopting this code for PHP (not Yii)<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">11<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#how-to-contribute-to-extensions-for-the-open-source-application-via-github\">How to contribute to extensions for the open source application via Github<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">12<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#related-links\">Related Links<\/a><\/div><\/div><\/nav>\n<h2 class=\"wp-block-heading\">Introduction to Mailgun Lists<\/h2>\n\n<p class=\"wp-block-paragraph\">While Mailgun is primarily known as a scalable cloud-based email engine, its mailing list functionality provides an easy and convenient way to manage lists and broadcast messages to multiple recipients. You can send messages to Mailgun\u2019s mailing lists via your favorite web email provider, email client, smartphone or via the API. And, Mailgun provides API\u2019s for programmatically managing and sending to your lists. Recently, Mailgun released a new\u00a0<a href=\"https:\/\/www.mailgun.com\/de\/blog\/product\/the-php-sdk-the-first-of-many-official-mailgun-sdks\/\" target=\"_tabs\" rel=\"noopener noreferrer\">SDK for PHP<\/a>\u00a0to make using its API even easier.<\/p>\n\n<p class=\"wp-block-paragraph\">You might find Mailgun\u2019s mailing lists provide the core functionality you need to move away from paid email services or open source list applications such as PHPList. I use Mailgun\u2019s list services to communicate with friends, reach out to my social communities and for business outreach.<\/p>\n\n<p class=\"wp-block-paragraph\">Not only does this tutorial describe how to use the Mailgun Mailing List API to manage your own lists via PHP but it provides free, open source, installable source code for a small web-based application,\u00a0ListApp, that allows you to manage and send emails via the List API using Mailgun.com. It\u2019s primarily meant to demonstrate how you might use the Mailgun List API in your application. ListApp is written in the\u00a0<a href=\"https:\/\/www.yiiframework.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Yii Framework for PHP<\/a>. You don\u2019t need to know anything about the Yii framework to run the application.<\/p>\n\n<h2 class=\"wp-block-heading\">How to install and use the open source application<\/h2>\n\n<p class=\"wp-block-paragraph\">The application provides a simple web-based front end to common scenarios you might use with Mailgun\u2019s mailing list features:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Synchronizing your lists and list members<\/li>\n\n\n\n<li>Creating, updating and deleting lists<\/li>\n\n\n\n<li>Importing members to a list<\/li>\n\n\n\n<li>Sending messages to lists<\/li>\n\n\n\n<li>Providing a public subscription form with<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">The code for ListApp is freely available on\u00a0<a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Github.com<\/a>. You can install it on any PHP\/MySQL server. I\u2019ve included instructions for\u00a0<a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">setting up ListApp on a Rackspace Cloud Ubuntu 12.04 server<\/a>\u00a0with 1 GB RAM. We use Ubuntu Linux, Apache, PHP 5.x, MySQL 5.x, PEAR and cURL libraries.<\/p>\n\n<p class=\"wp-block-paragraph\">Even if you use your own server, you should\u00a0<a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">read the Rackspace setup instructions<\/a>\u00a0for creating an apache site, creating and installing the database and generating your login credentials. It\u2019s also important to customize your site settings in the config-listapp.ini file.<\/p>\n\n<p class=\"wp-block-paragraph\">You\u2019ll need to\u00a0sign up for a free (or higher level) Mailgun account\u00a0in order to get your API keys for the settings file. <\/p>\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_9be6afdfbb39f597c1ea08a295003745\">\r\n                    <p class=\"text-uppercase section-caption text-body-color\">\r\n                Sign Up            <\/p>\r\n                            <p class=\"h4 text-accent fw-bold\" id=\"banner-block-block_9be6afdfbb39f597c1ea08a295003745\">\r\n                It&#8217;s easy to get started. And it&#8217;s free.            <\/p>\r\n                            <div class=\"mb-0 text-body-color\">\r\n                                    <div class=\"content-body mb-0 text-body-color\">See what you can accomplish with the world\u2019s best email delivery platform.<\/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\n<p class=\"wp-block-paragraph\">If you have a paid account, you\u2019ll need to add your domains and create DNS settings for using them. If you use a free account, your domain will be yourchoice.mailgun.org. Therefore, your list addresses can be wildcard@yourchoice.mailgun.org. Your Mailgun API keys will be shown on the\u00a0<a href=\"https:\/\/app.mailgun.com\/app\/dashboard\" target=\"_tabs\" rel=\"noopener noreferrer\">control panel home page<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">How to use the Mailgun Mailing List API<\/h2>\n\n<p class=\"wp-block-paragraph\">Using the Mailgun Mailing List API is very straightforward. Mailgun provides its own\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/api-mailinglists.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Mailing List API documentation<\/a>\u00a0to assist us. You can review how ListApp uses the Mailgun API in our\u00a0<a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Yiigun.php component<\/a>. ListApp uses the\u00a0<a href=\"https:\/\/www.mailgun.com\/de\/blog\/product\/the-php-sdk-the-first-of-many-official-mailgun-sdks\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Mailgun PHP SDK<\/a>\u00a0to interact with Mailgun.<\/p>\n\n<p class=\"wp-block-paragraph\">Here are some examples of common uses of the mailing list API with Mailgun:<\/p>\n\n<h2 class=\"wp-block-heading\">Initializing the Mailgun PHP SDK<\/h2>\n\n<p class=\"wp-block-paragraph\">Whenever the Yiigun class is used, the constructor is called creating a secure initialization with Mailgun\u2019s API:<\/p>\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                                    function __construct()\r\n{\r\n    \/\/ Initialize Mailgun connection\r\n    $this-&gt;mg = new Mailgun(Yii::app()-&gt;params[&#039;mailgun&#039;][&#039;api_key&#039;]);\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<h2 class=\"wp-block-heading\">Synchronizing lists and list members<\/h2>\n\n<p class=\"wp-block-paragraph\">Once you login into ListApp, click on the Synchronize option. This will fetch copies of all the existing mailing lists at Mailgun and download all their members into the local database. It essentially synchronizes down your mailing list from the Mailgun.com site. This option does not synchronize up.<\/p>\n\n<p class=\"wp-block-paragraph\">Here\u2019s the fetchLists function. Using the Mailgun PHP SDK makes this quite simple:<\/p>\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                                    public function fetchLists()\r\n{\r\n    $result = $this-&gt;mg-&gt;get(&quot;lists&quot;);\r\n    return $result-&gt;http_response_body;\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">Here\u2019s how we fetch members:<\/p>\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                                    public function fetchListMembers($address)\r\n{\r\n    $result = $this-&gt;mg-&gt;get(&quot;lists\/&quot; . $address . &#039;\/members&#039;);\r\n    return $result-&gt;http_response_body;\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<h2 class=\"wp-block-heading\">Creating a list<\/h2>\n\n<p class=\"wp-block-paragraph\">You can create new mailing lists by using the menu options on the right of ListApp. Each list requires a name, list email address and description. When you create a new list, ListApp uploads the list and its settings to Mailgun.com as well. You can also update the properties for any list.<\/p>\n\n<p class=\"wp-block-paragraph\">Here\u2019s how we create a new list:<\/p>\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                                    public function listCreate($newlist)\r\n{\r\n    $result = $this-&gt;mg-&gt;post(&quot;lists&quot;, [\r\n        &#039;address&#039;      =&gt; $newlist-&gt;address,\r\n        &#039;name&#039;         =&gt; $newlist-&gt;name,\r\n        &#039;description&#039;  =&gt; $newlist-&gt;description,\r\n        &#039;access_level&#039; =&gt; $newlist-&gt;access_level\r\n    ]);\r\n\r\n    return $result-&gt;http_response_body;\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">Here\u2019s how we update mailing list properties:<\/p>\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                                    public function listUpdate($existing_address, $model)\r\n{\r\n    $result = $this-&gt;mg-&gt;put(&quot;lists\/&quot; . $existing_address, [\r\n        &#039;address&#039;      =&gt; $model-&gt;address,\r\n        &#039;name&#039;         =&gt; $model-&gt;name,\r\n        &#039;description&#039;  =&gt; $model-&gt;description,\r\n        &#039;access_level&#039; =&gt; $model-&gt;access_level\r\n    ]);\r\n\r\n    return $result-&gt;http_response_body;\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<h2 class=\"wp-block-heading\">Importing members to the list<\/h2>\n\n<p class=\"wp-block-paragraph\">You can import new members to any list from ListApp. We use PEAR\u2019s email list parsing libraries for this feature. You can paste in any list of email addresses in the form Personal Name &lt;mailbox@domain.com&gt; separate by commas or newlines. ListApp will add the members locally and upload them to Mailgun.com.<\/p>\n\n<p class=\"wp-block-paragraph\">To add members by bulk, first, we create a JSON string of the new members to upload \u2026 here\u2019s some sample code that you might use. You can see a\u00a0<a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">complete example here<\/a>.<\/p>\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                                    $json_upload = &#039;[&#039;;\r\n\r\nforeach ($addresses as $i) {\r\n    $json_upload .= &#039;{&#039;;\r\n    $json_upload .= &#039;&quot;name&quot;: &quot;&#039; . $i-&gt;name . &#039;&quot;, &#039;;\r\n    $json_upload .= &#039;&quot;address&quot;: &quot;&#039; . $i-&gt;address . &#039;&quot;&#039;;\r\n    $json_upload .= &#039;},&#039;;\r\n}\r\n\r\n$json_upload .= &#039;]&#039;;\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">Then, we call the bulk upload function with this JSON string:<\/p>\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                                    public function memberBulkAdd($list = &#039;&#039;, $json_str = &#039;&#039;)\r\n{\r\n    $result = $this-&gt;mg-&gt;post(&quot;lists\/&quot; . $list . &#039;\/members.json&#039;, [\r\n        &#039;members&#039;    =&gt; $json_str,\r\n        &#039;subscribed&#039; =&gt; true,\r\n        &#039;upsert&#039;     =&gt; &#039;yes&#039;\r\n    ]);\r\n\r\n    return $result-&gt;http_response_body;\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">You can add individual members to lists as well using the Add a Member menu option.<\/p>\n\n<h2 class=\"wp-block-heading\">Sending a message<\/h2>\n\n<p class=\"wp-block-paragraph\">You can send a message to any list using the menu on the right. We deliver the outbound message to Mailgun like any other message:<\/p>\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                                    public function send_simple_message($to = &#039;&#039;, $subject = &#039;&#039;, $body = &#039;&#039;, $from = &#039;&#039;)\r\n{\r\n    if ($from &#039;&#039;) {\r\n        $from = Yii::app()-&gt;params[&#039;supportEmail&#039;];\r\n    }\r\n\r\n    $domain = Yii::app()-&gt;params[&#039;mail_domain&#039;];\r\n\r\n    $result = $this-&gt;mg-&gt;sendMessage($domain, [\r\n        &#039;from&#039;    =&gt; $from,\r\n        &#039;to&#039;      =&gt; $to,\r\n        &#039;subject&#039; =&gt; $subject,\r\n        &#039;text&#039;    =&gt; $body,\r\n    ]);\r\n\r\n    return $result-&gt;http_response_body;\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">Mailgun will then manage the delivery of the message to individual recipients.<\/p>\n\n<p class=\"wp-block-paragraph\">You can also use some of the generic Mailgun recipient variables to include personal salutations, such as Hi %recipient_fname% (see\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/user_manual.html#templates\" target=\"_tabs\" rel=\"noopener noreferrer\">Template Variables<\/a>).<\/p>\n\n<h2 class=\"wp-block-heading\">Using the Public Subscribe Form<\/h2>\n\n<p class=\"wp-block-paragraph\">You can View the Subscribe form from the ListApp list detail page. And, you can link users to the public subscription form for a list at\u00a0<a href=\"https:\/\/listapp.yourdomain.com\/request\/create\/&lt;list-id#&amp;gt\" target=\"_tabs\" rel=\"noopener noreferrer\">https:\/\/listapp.yourdomain.com\/request\/create\/&lt;list-id#&amp;gt<\/a>;:<\/p>\n\n<p class=\"wp-block-paragraph\">ListApp also makes use of\u00a0<a href=\"\/products\/inbox\/email-verification\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Mailgun\u2019s new email validation API<\/a>\u00a0which detects typos such as @gmal.com:<\/p>\n\n<p class=\"wp-block-paragraph\">We\u2019re using Yii\u2019s built-in AJAX validation to integrate Mailgun\u2019s email validation API. Yii\u2019s rule function calls a custom validator we\u2019ve built that speaks to the Mailgun Validator \u2013 see\u00a0<a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Request model<\/a>:<\/p>\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                                    public function rules()\r\n{\r\n    return array(\r\n        array(&#039;address&#039;, &#039;required&#039;),\r\n        array(&#039;name, address&#039;, &#039;length&#039;, &#039;max&#039; =&gt; 255),\r\n        array(&#039;address&#039;, &#039;mailgunValidator&#039;),\r\n    );\r\n}\r\n\r\npublic function mailgunValidator($attribute, $params)\r\n{\r\n    $yg = new Yiigun();\r\n    $result = $yg-&gt;validate($this-&gt;$attribute);\r\n\r\n    if ($result-&gt;is_valid) {\r\n        return false;\r\n    } else {\r\n        $this-&gt;addError(\r\n            $attribute,\r\n            &#039;There is a problem with your email address &#039; . $result-&gt;address .\r\n            &#039;. Did you mean &#039; . $result-&gt;did_you_mean . &#039;?&#039;\r\n        );\r\n    }\r\n}\r\n\r\nfunction validate($email = &#039;&#039;)\r\n{\r\n    $this-&gt;mgValidate = new Mailgun(Yii::app()-&gt;params[&#039;mailgun&#039;][&#039;public_key&#039;]);\r\n    $result = $this-&gt;mgValidate-&gt;get(&#039;address\/validate&#039;, array(&#039;address&#039; =&gt; $email));\r\n    return $result-&gt;http_response_body;\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">Once a subscription request is validated, we use the\u00a0Mailgun SDK Opt In Handler\u00a0to email the user with a verification link; this prevents false adds:<\/p>\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                                    public function generateVerifyHash($model, $mglist)\r\n{\r\n    \/\/ Generate secure hash for verifying subscription requests\r\n    $verify_secret = Yii::app()-&gt;params[&#039;verify_secret&#039;];\r\n    $optInHandler = $this-&gt;mg-&gt;OptInHandler();\r\n    $generatedHash = $optInHandler-&gt;generateHash(\r\n        $mglist-&gt;address,\r\n        $verify_secret,\r\n        $model-&gt;address\r\n    );\r\n\r\n    \/\/ Remove encodings - fixes Yii routing issue\r\n    $generatedHash = str_ireplace(&#039;%&#039;, &#039;&#039;, $generatedHash);\r\n\r\n    return $generatedHash;\r\n}\r\n\r\npublic function sendVerificationRequest($model, $mglist)\r\n{\r\n    \/\/ Send an email with the verification link\r\n    $body = &quot;Please verify your subscription by clicking on the link below:rn&quot;\r\n          . Yii::app()-&gt;getBaseUrl(true)\r\n          . &quot;\/request\/verify\/&quot;\r\n          . $model-&gt;id\r\n          . &quot;\/&quot;\r\n          . $model-&gt;hash;\r\n\r\n    $this-&gt;send_simple_message(\r\n        $model-&gt;address,\r\n        &#039;Please verify your subscription to &#039; . $mglist-&gt;name,\r\n        $body,\r\n        Yii::app()-&gt;params[&#039;support_email&#039;]\r\n    );\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">Here is how we add subscribed members when they click the verification link \u2013 in the\u00a0<a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">RequestController<\/a>:<\/p>\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                                    public function actionVerify($id, $hash)\r\n{\r\n    $request = $this-&gt;loadModel($id);\r\n\r\n    if ($hash $request-&gt;hash) {  \/\/ findByPk($request-&gt;mglist_id);\r\n\r\n        \/\/ Insert new Member\r\n        $member_id = $request-&gt;insertMember($request-&gt;name, $request-&gt;address);\r\n\r\n        \/\/ Add member to this list\r\n        Member::model()-&gt;addToList($member_id, $request-&gt;mglist_id);\r\n\r\n        \/\/ Add member at Mailgun\r\n        $yg = new Yiigun();\r\n        $yg-&gt;memberAdd($mglist-&gt;address, $request-&gt;address, $request-&gt;name);\r\n\r\n        $this-&gt;render(&#039;verify&#039;, array(\r\n            &#039;model&#039;  =&gt; $this-&gt;loadModel($id),\r\n            &#039;mglist&#039; =&gt; $mglist,\r\n        ));\r\n    } else {\r\n        echo &#039;Sorry, your request is invalid.&#039;;\r\n        yexit();\r\n    }\r\n}\r\n\r\npublic function memberAdd($list = &#039;&#039;, $email = &#039;&#039;, $name = &#039;&#039;)\r\n{\r\n    $result = $this-&gt;mg-&gt;post(\r\n        &quot;lists\/&quot; . $list . &#039;\/members&#039;,\r\n        array(\r\n            &#039;address&#039;    =&gt; $email,\r\n            &#039;name&#039;       =&gt; $name,\r\n            &#039;subscribed&#039; =&gt; true,\r\n            &#039;upsert&#039;     =&gt; &#039;yes&#039;\r\n        )\r\n    );\r\n\r\n    return $result-&gt;http_response_body;\r\n}\r\n\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<h2 class=\"wp-block-heading\">Adopting this code for PHP (not Yii)<\/h2>\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.yiiframework.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Yii<\/a>\u00a0is essentially an MVC framework like Ruby on Rails, but with all the simplicity and maturity of PHP. It\u2019s fast, efficient and relatively straightforward. It also includes scaffolding\/code generation, active record, transaction support, I18n localization, caching support et al. The documentation, community support and available plugins are also quite good. It took less than 10 hours using Yii to build ListApp.<\/p>\n\n<p class=\"wp-block-paragraph\">However, if you prefer not to use Yii, you can build on the Yiigun component used in ListApp. Yiigun.php is essentially a PHP class file with methods and helpers for leveraging the\u00a0<a href=\"https:\/\/www.mailgun.com\/de\/blog\/product\/the-php-sdk-the-first-of-many-official-mailgun-sdks\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Mailgun Mailing List SDK<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">The current version of ListApp talks to blog.mailgun.com\/post\/the-php-sdk-the-first-of-many-official-mailgun-sdks\/Mailgun in real time and does not have extensive error handling. Longer term, it would be good to add asynchronous, queued API requests.<\/p>\n\n<p class=\"wp-block-paragraph\">In addition to Mailgun\u2019s own\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/api-mailinglists.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Mailing List API documentation<\/a>\u00a0(which includes examples in cURL, Ruby, PHP, Python, Java and C#), you can review, extract and adapt the\u00a0<a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Yiigun.php file<\/a>\u00a0and its functions for your own PHP application or framework.<\/p>\n\n<p class=\"wp-block-paragraph\">If you don\u2019t use Yii, you\u2019ll need to use composer to install the SDK per\u00a0<a href=\"https:\/\/github.com\/mailgun\/mailgun-php\" target=\"_tabs\" rel=\"noopener noreferrer\">Mailgun\u2019s installation instructions<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">How to contribute to extensions for the open source application via Github<\/h2>\n\n<p class=\"wp-block-paragraph\">If you\u2019d like to add features or extend ListApp for your own purposes, I suggest that you\u00a0<a href=\"https:\/\/help.github.com\/articles\/fork-a-repo\" target=\"_tabs\" rel=\"noopener noreferrer\">fork the code on Github<\/a>. If we issue any updates or new features, you can merge the changes into your work at any time.<\/p>\n\n<p class=\"wp-block-paragraph\">If you\u2019d like to contribute to ListApp by adding features and asking us to include them in the main codebase (we\u2019d love that), you can\u00a0<a href=\"https:\/\/help.github.com\/articles\/using-pull-requests\" target=\"_tabs\" rel=\"noopener noreferrer\">submit a pull request<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Git<\/a>\u00a0is an extremely powerful Internet-based, collaborative source code management tool \u2013 but it can be a bit confusing to get started with. Check out their\u00a0<a href=\"https:\/\/help.github.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">help page<\/a>\u00a0for guides to common usages.<\/p>\n\n<h2 class=\"wp-block-heading\">Related Links<\/h2>\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">ListApp: Open Source Yii-based Mailing List Application on Github<\/a><\/li>\n\n\n\n<li>ListApp\u2019s <a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">RackSpace Cloud Installation Instructions<\/a><\/li>\n\n\n\n<li>ListApp <a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Yiigun.php file<\/a> for extraction with other PHP-based applications<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/mailgun\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Report Issues with ListApp<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.mailgun.com\/post\/how-geogram-built-a-free-group-email-service-using-yii-for-php-with-mysql\/\" target=\"_tabs\" rel=\"noopener noreferrer\">How Geogram built a free group email service using Yii for PHP with MySQL<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/yiiframework.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Yii Framework<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jeffreifman.com\/about\" target=\"_tabs\" rel=\"noopener noreferrer\">About Jeff Reifman<\/a><a href=\"https:\/\/jeffreifman.com\/consulting\" target=\"_tabs\" rel=\"noopener noreferrer\">NewsCloud Consulting<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dieser Beitrag wurde von Jeff Reifman verfasst, einem Technologieberater aus Seattle und Gr\u00fcnder von Geogram, einem kostenlosen E-Mail-Service f\u00fcr lokale Orte, der von Mailgun betrieben wird. Folgen Sie ihm unter @reifman.<\/p>\n","protected":false},"author":13,"featured_media":4074,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"blog_category":[20],"class_list":["post-20832","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-email"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Open-Source-Mailinglisten-Applet mit dem Mailgun-PHP-SDK | Mailgun<\/title>\n<meta name=\"description\" content=\"Mailgun gibt den Start seines Mailinglisten-Applets auf Basis seines PHP-SDKs bekannt. 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\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Open-Source-Mailinglisten-Applet mit dem Mailgun-PHP-SDK | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Mailgun gibt den Start seines Mailinglisten-Applets auf Basis seines PHP-SDKs bekannt. Weiterlesen \u2013\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T02:51:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.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=\"7\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\\\/email\\\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/email\\\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\\\/\",\"name\":\"Open-Source-Mailinglisten-Applet mit dem Mailgun-PHP-SDK | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/email\\\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/email\\\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Email.png\",\"datePublished\":\"2019-07-16T00:00:00+00:00\",\"dateModified\":\"2026-09-16T02:51:50+00:00\",\"description\":\"Mailgun gibt den Start seines Mailinglisten-Applets auf Basis seines PHP-SDKs bekannt. Weiterlesen \u2013\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/email\\\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/email\\\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/email\\\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Email.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Email.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/email\\\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\\\/#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\":\"Open-Source-Mailinglisten-Applet mit dem Mailgun-PHP-SDK\"}]},{\"@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":"Open-Source-Mailinglisten-Applet mit dem Mailgun-PHP-SDK | Mailgun","description":"Mailgun gibt den Start seines Mailinglisten-Applets auf Basis seines PHP-SDKs bekannt. 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\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/","og_locale":"de_DE","og_type":"article","og_title":"Open-Source-Mailinglisten-Applet mit dem Mailgun-PHP-SDK | Mailgun","og_description":"Mailgun gibt den Start seines Mailinglisten-Applets auf Basis seines PHP-SDKs bekannt. Weiterlesen \u2013","og_url":"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","article_modified_time":"2026-09-16T02:51:50+00:00","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/","url":"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/","name":"Open-Source-Mailinglisten-Applet mit dem Mailgun-PHP-SDK | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.png","datePublished":"2019-07-16T00:00:00+00:00","dateModified":"2026-09-16T02:51:50+00:00","description":"Mailgun gibt den Start seines Mailinglisten-Applets auf Basis seines PHP-SDKs bekannt. Weiterlesen \u2013","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Email.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/de\/blog\/email\/turnkey-mailinglisten-applet-mit-dem-mailgun-php-sdk\/#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":"Open-Source-Mailinglisten-Applet mit dem Mailgun-PHP-SDK"}]},{"@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\/20832","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":2,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/20832\/revisions"}],"predecessor-version":[{"id":23259,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/20832\/revisions\/23259"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/media\/4074"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/media?parent=20832"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog_category?post=20832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}