{"id":23274,"date":"2019-07-16T00:00:00","date_gmt":"2019-07-16T00:00:00","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/das-offizielle-mailgun-ruby-sdk-ist-da\/"},"modified":"2026-09-16T02:52:09","modified_gmt":"2026-09-16T02:52:09","slug":"das-offizielle-mailgun-ruby-sdk-ist-da","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/","title":{"rendered":"Das offizielle Mailgun-Ruby-Gem ist da"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Heute freuen wir uns, bekannt zu geben, dass wir Ruby zur Liste der offiziellen Mailgun-SDKs hinzugef\u00fcgt haben. Wie bei unserem PHP-SDK haben wir einige Dienstprogramme wie Message Builder, Batch Sending und Opt-in-Handler integriert, um allt\u00e4gliche Entwicklungsaufgaben zu vereinfachen. Wir freuen uns auf die Zusammenarbeit mit der Ruby-Community, um das SDK im Laufe der Zeit noch besser zu machen.\u00a0<a href=\"https:\/\/github.com\/mailgun\/mailgun-ruby\" target=\"_tabs\" rel=\"noopener noreferrer\">Sie finden das SDK auf GitHub<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Falls Sie noch nicht mit einem SDK vertraut sind, sehen wir uns zun\u00e4chst an, was erforderlich ist, um eine Nachricht \u00fcber die Standard-HTTPS-Ruby-Bibliothek zu versenden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Heute freuen wir uns, bekannt zu geben, dass wir Ruby zur Liste der offiziellen Mailgun-SDKs hinzugef\u00fcgt haben. Wie bei unserem PHP-SDK haben wir einige Dienstprogramme wie Message Builder, Batch Sending und Opt-in-Handler integriert, um allt\u00e4gliche Entwicklungsaufgaben zu vereinfachen. Wir freuen uns auf die Zusammenarbeit mit der Ruby-Community, um das SDK im Laufe der Zeit noch besser zu machen.\u00a0<a href=\"https:\/\/github.com\/mailgun\/mailgun-ruby\" target=\"_tabs\" rel=\"noopener noreferrer\">Sie finden das SDK auf GitHub<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Falls Sie noch nicht mit einem SDK vertraut sind, sehen wir uns zun\u00e4chst an, was erforderlich ist, um eine Nachricht \u00fcber die Standard-HTTPS-Ruby-Bibliothek zu versenden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Nachricht senden:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                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                                    require &quot;net\/https&quot;  \r\nrequire &quot;uri&quot;\r\n\r\nuri = URI.parse(&quot;https:\/\/api.mailgun.net\/v2\/samples.mailgun.org\/messages&quot;)\r\n\r\ndata = {&#039;to&#039;        =&gt; &#039;joe.sample@example.com&#039;,  \r\n        &#039;from&#039;      =&gt; &#039;bill.sample@example.com&#039;,\r\n        &#039;subject&#039;   =&gt; &#039;Hello from Ruby!&#039;,\r\n        &#039;text&#039;      =&gt; &#039;Sent via Mailgun.&#039;}\r\n\r\nhttp = Net::HTTP.new(uri.host, uri.port)  \r\nhttp.use_ssl = true\r\n\r\nrequest = Net::HTTP::Post.new(uri.request_uri)  \r\nrequest.basic_auth(&quot;api&quot;, &quot;key-3ax6xnjp29jd6fds4gc373sgvjxteol0&quot;)  \r\nrequest.set_form_data(data)\r\n\r\nresponse = http.request(request)  \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\">Mit dem obigen Code wird eine Nachricht \u00fcber die Mailgun-API gesendet. Er enth\u00e4lt jedoch viel Code, der zwar wichtig, aber kompliziert und ziemlich un\u00fcbersichtlich ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mit unserem neuen SDK konnten wir die erforderliche Code-Menge auf wenige Zeilen reduzieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Nachricht mit dem Mailgun Ruby SDK senden:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                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                                        require &#039;mailgun&#039;\r\n\r\n    # First, instantiate the Mailgun Client with your API key\r\n    mg_client = Mailgun::Client.new &quot;your-api-key&quot;\r\n\r\n    # Define your message parameters\r\n    message_params = {:from    =&gt; &#039;bob@sending_domain.com&#039;,  \r\n              :to      =&gt; &#039;sally@example.com&#039;,\r\n              :subject =&gt; &#039;The Ruby SDK is awesome!&#039;,\r\n              :text    =&gt; &#039;It is really easy to send a message!&#039;}\r\n\r\n    # Send your message through the client\r\n    mg_client.send_message &quot;sending_domain.com&quot;, message_params\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\">Events mit dem Mailgun Ruby SDK abrufen:<\/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                                        # First, instantiate the Client, then instantiate the Events helper.  \r\n    mg_client = Mailgun::Client.new(&quot;your-api-key&quot;)  \r\n    mg_events = Mailgun::Events.new(mg_client, &quot;your-domain&quot;)\r\n\r\n    result = mg_events.get({&#039;limit&#039; =&gt; 25,  \r\n                    &#039;recipient&#039; =&gt; &#039;joe@example.com&#039;})\r\n\r\n    result.to_h[&#039;items&#039;].each do | item |  \r\n    # outputs &quot;Delivered - 20140509184016.12571.48844@example.com&quot;\r\n    puts &quot;#{item[&#039;event&#039;]} - #{item[&#039;message&#039;][&#039;headers&#039;][&#039;message-id&#039;]}&quot;\r\nend\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Alle HTTP-Aktionen geben ein Antwortobjekt zur\u00fcck, das in einen Hash oder in YAML konvertiert werden kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen, wir m\u00f6chten mit derselben Abfrage die n\u00e4chsten 25 Ergebnisse abrufen. F\u00fchren Sie einfach \u201enext\u201c f\u00fcr das Objekt \u201emg_events\u201c aus. Das SDK verfolgt die Paginierungslinks der Events API.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>result = mg_events.next<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hinweis: Wenn die Ergebnismenge kleiner als Ihr Limit ist, brauchen Sie sich keine Sorgen zu machen. Eine nachfolgende Abfrage von \u201enext\u201c liefert die n\u00e4chsten 25 Ergebnisse seit Ihrem letzten Aufruf von \u201enext\u201c oder \u201eget\u201c.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Message Builder<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Das Erstellen eines Arrays von Parametern kann f\u00fcr einige Code-Implementierungen schwierig sein. Daher haben wir eine Klasse integriert, mit der Sie Methodenaufrufe durchf\u00fchren k\u00f6nnen, die automatisch ein ordnungsgem\u00e4\u00df formatiertes Array von Nachrichtenparametern aufbauen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Nachricht mit dem Mailgun Ruby SDK und dem Message Builder senden:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                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                                        # First, instantiate the Mailgun Client with your API key  \r\n    mg_client = Mailgun::Client.new(&quot;your-api-key&quot;)  \r\n    mb_obj = Mailgun::MessageBuilder.new()\r\n\r\n    # Define the from address\r\n    mb_obj.set_from_address(&quot;me@example.com&quot;, {&quot;first&quot;=&gt;&quot;Ruby&quot;, &quot;last&quot; =&gt; &quot;SDK&quot;});  \r\n    # Define a to recipient\r\n    mb_obj.add_recipient(:to, &quot;john.doe@example.com&quot;, {&quot;first&quot; =&gt; &quot;John&quot;, &quot;last&quot; =&gt; &quot;Doe&quot;});  \r\n    # Define a cc recipient\r\n    mb_obj.add_recipient(:cc, &quot;sally.doe@example.com&quot;, {&quot;first&quot; =&gt; &quot;Sally&quot;, &quot;last&quot; =&gt; &quot;Doe&quot;});  \r\n    # Define the subject\r\n    mb_obj.set_subject(&quot;A message from the Ruby SDK using Message Builder!&quot;);  \r\n    # Define the body of the message\r\n    mb_obj.set_text_body(&quot;This is the text body of the message!&quot;);\r\n\r\n    # Campaign and other headers\r\n    mb_obj.add_campaign_id(&quot;My-Awesome-Campaign&quot;);  \r\n    mb_obj.add_custom_parameter(&quot;h:Customer-Id&quot;, &quot;12345&quot;);\r\n\r\n    # Attach a file and rename it\r\n    mb_obj.add_attachment(&quot;\/path\/to\/file\/receipt_123491820.pdf&quot;, &quot;Receipt.pdf&quot;);\r\n\r\n    # Schedule message in the future\r\n    mb_obj.set_delivery_time(&quot;tomorrow 8:00AM&quot;, &quot;PST&quot;);\r\n\r\n    # Finally, send your message using the client\r\n    result = mg_client.send_message(&quot;sending_domain.com&quot;, mb_obj)\r\n\r\n    puts result.body.to_s\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\">Eine Liste aller verf\u00fcgbaren Funktionen finden Sie in der\u00a0<a href=\"https:\/\/github.com\/mailgun\/mailgun-ruby\/blob\/master\/docs\/Messages.md\" target=\"_tabs\" rel=\"noopener noreferrer\">Liste auf GitHub<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Batch Message<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zus\u00e4tzlich zum Message Builder bieten wir Batch Message an. Mit dieser Klasse k\u00f6nnen Sie eine Nachricht erstellen und eine Vorlagennachricht in Batches an bis zu 1.000 Empfangsadressen pro Post senden. Der Vorteil dieser Klasse ist, dass die Anzahl der Empfangsadressen \u00fcberwacht wird und die Nachricht automatisch an den Endpunkt gesendet wird, sobald Sie die 1.000. Adresse hinzugef\u00fcgt haben. Das bedeutet, dass Sie Ihre Nachricht erstellen und mit der Iteration durch Ihre Datenbank beginnen k\u00f6nnen. K\u00fcmmern Sie sich nicht um den eigentlichen Versand der Nachricht\u00a0\u2013 das SDK \u00fcbernimmt bei Bedarf die \u00dcbermittlung an die API.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Nachricht mit dem Mailgun Ruby SDK und Batch Message senden:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                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                                        # First, instantiate the Mailgun Client with your API key  \r\n    mg_client = Mailgun::Client.new(&quot;your-api-key&quot;)  \r\n    mb_obj = Mailgun::BatchMessage.new(@mb_client, &quot;example.com&quot;)\r\n\r\n    # Define the from address\r\n    mb_obj.set_from_address(&quot;me@example.com&quot;,  \r\n                             {&quot;first&quot;=&gt;&quot;Ruby&quot;, \r\n                              &quot;last&quot; =&gt; &quot;SDK&quot;});\r\n    # Define the subject\r\n    mb_obj.set_subject(&quot;A message from the Ruby SDK using Message Builder!&quot;);\r\n\r\n    # Define the body of the message\r\n    mb_obj.set_text_body(&quot;Hello %recipient.first%,  \r\n                 This is the text body of the message \r\n                 using recipient variables!\r\n                 If you needed to reference the account-id\r\n                 recipient variable, you could do it like \r\n                 this: %account-id%.&quot;);\r\n\r\n    # Add several recipients\r\n    mb_obj.add_recipient(:to, &quot;john.doe@example.com&quot;,  \r\n                                  {&quot;first&quot;      =&gt; &quot;John&quot;, \r\n                                   &quot;last&quot;       =&gt; &quot;Doe&quot;, \r\n                                   &quot;account-id&quot; =&gt; 1234});\r\n\r\n    mb_obj.add_recipient(:to, &quot;jane.doe@example.com&quot;,  \r\n                                  {&quot;first&quot;      =&gt; &quot;Jane&quot;, \r\n                                   &quot;last&quot;       =&gt; &quot;Doe&quot;, \r\n                                   &quot;account-id&quot; =&gt; 5678});\r\n\r\n    mb_obj.add_recipient(:to, &quot;bob.doe@example.com&quot;,  \r\n                                  {&quot;first&quot;       =&gt; &quot;Bob&quot;, \r\n                                   &quot;last&quot;        =&gt; &quot;Doe&quot;, \r\n                                   &quot;account-id&quot;  =&gt; 91011});\r\n    ... etc ...\r\n\r\n    mb_obj.add_recipient(:to, &quot;sally.doe@example.com&quot;,  \r\n                                  {&quot;first&quot;      =&gt; &quot;Sally&quot;, \r\n                                   &quot;last&quot;       =&gt; &quot;Doe&quot;, \r\n                                   &quot;account-id&quot; =&gt; 121314});\r\n\r\n    # Send your message through the client\r\n    message_ids = mg_client.finalize\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\">Wie Sie sehen, erweitert Batch Message den Message Builder. Alle im Message Builder verf\u00fcgbaren Funktionen stehen auch in Batch Message zur Verf\u00fcgung. Werfen Sie einen Blick in die\u00a0<a href=\"https:\/\/github.com\/mailgun\/mailgun-ruby\/tree\/master\/docs\" target=\"_tabs\" rel=\"noopener noreferrer\">vollst\u00e4ndigen Dokumentation auf GitHub<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Opt-in-Handler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zu guter Letzt haben wir einen einfachen Double-Opt-in-Handler entwickelt, mit dem Sie eindeutige Opt-in-Links generieren k\u00f6nnen. Der Opt-in-Handler nutzt auch unseren<a href=\"\/?blog_category=free-email-validation-api-for-web-forms\" target=\"_tabs\" rel=\"noopener noreferrer\">\u00a0Dienst zur Adressvalidierung<\/a>\u00a0um die Genauigkeit der E-Mail-Adressen zu \u00fcberpr\u00fcfen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der typische Ablauf f\u00fcr die Verwendung dieser Klasse sieht wie folgt aus:<br>\n<b>Abonnement wird angefragt<\/b>\u00a0-&gt; [Empfangsadresse validieren] -&gt; [Opt-in-Link generieren] -&gt; [Opt-in-Link per E-Mail senden]<br>\n<b>Opt-in-Link wird geklickt<\/b>\u00a0-&gt; [Opt-in-Link validieren] -&gt; [Abonnement best\u00e4tigen] -&gt; [Abschlie\u00dfende Best\u00e4tigung senden]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verwenden Sie diese Klasse am besten f\u00fcr die Anmeldeformulare auf Ihrer Website. Daf\u00fcr ben\u00f6tigen Sie einen \u00fcber das Internet zug\u00e4nglichen Webserver, der den Klick auf den Validierungslink verarbeitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Da jede Implementierung ziemlich individuell ist, finden Sie in der\u00a0<a href=\"https:\/\/github.com\/mailgun\/mailgun-ruby\/blob\/master\/docs\/OptInHandler.md\" target=\"_tabs\" rel=\"noopener noreferrer\">GitHub-Dokumentation<\/a>\u00a0Anwendungsbeispiele f\u00fcr diese Klasse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lassen Sie uns wissen, was Sie denken. Gibt es noch etwas, das Sie sich im SDK w\u00fcnschen w\u00fcrden? Oder etwas, das Ihnen besonders gef\u00e4llt? Wir freuen uns \u00fcber Ihr Feedback.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Viel Spa\u00df beim Versenden.<\/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_8df6e6f9ef6b44f18d0fa8d74576d5ba\">\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_8df6e6f9ef6b44f18d0fa8d74576d5ba\">\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>Wir haben Ruby zu unserer Liste von SDKs hinzugef\u00fcgt. M\u00f6chten Sie mehr dar\u00fcber erfahren, wie Sie E-Mails \u00fcber Mailgun mit Ruby versenden? Weiterlesen&#8230;<\/p>\n","protected":false},"author":13,"featured_media":4555,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[22],"class_list":["post-23274","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>Das offizielle Mailgun Ruby Gem ist da - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"Wir haben Ruby zu unserer Liste von SDKs hinzugef\u00fcgt. M\u00f6chten Sie mehr dar\u00fcber erfahren, wie Sie E-Mails \u00fcber Mailgun mit Ruby versenden? Weiterlesen...\" \/>\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\/das-offizielle-mailgun-ruby-sdk-ist-da\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Das offizielle Mailgun Ruby Gem ist da - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Wir haben Ruby zu unserer Liste von SDKs hinzugef\u00fcgt. M\u00f6chten Sie mehr dar\u00fcber erfahren, wie Sie E-Mails \u00fcber Mailgun mit Ruby versenden? Weiterlesen...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T02:52:09+00:00\" \/>\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=\"4\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\\\/das-offizielle-mailgun-ruby-sdk-ist-da\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/das-offizielle-mailgun-ruby-sdk-ist-da\\\/\",\"name\":\"Das offizielle Mailgun Ruby Gem ist da - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/das-offizielle-mailgun-ruby-sdk-ist-da\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/das-offizielle-mailgun-ruby-sdk-ist-da\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"datePublished\":\"2019-07-16T00:00:00+00:00\",\"dateModified\":\"2026-09-16T02:52:09+00:00\",\"description\":\"Wir haben Ruby zu unserer Liste von SDKs hinzugef\u00fcgt. M\u00f6chten Sie mehr dar\u00fcber erfahren, wie Sie E-Mails \u00fcber Mailgun mit Ruby versenden? Weiterlesen...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/das-offizielle-mailgun-ruby-sdk-ist-da\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/das-offizielle-mailgun-ruby-sdk-ist-da\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/product\\\/das-offizielle-mailgun-ruby-sdk-ist-da\\\/#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\\\/das-offizielle-mailgun-ruby-sdk-ist-da\\\/#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\":\"Das offizielle Mailgun-Ruby-Gem ist da\"}]},{\"@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":"Das offizielle Mailgun Ruby Gem ist da - Transactional Email API Service For Developers | Mailgun","description":"Wir haben Ruby zu unserer Liste von SDKs hinzugef\u00fcgt. M\u00f6chten Sie mehr dar\u00fcber erfahren, wie Sie E-Mails \u00fcber Mailgun mit Ruby versenden? Weiterlesen...","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\/das-offizielle-mailgun-ruby-sdk-ist-da\/","og_locale":"de_DE","og_type":"article","og_title":"Das offizielle Mailgun Ruby Gem ist da - Transactional Email API Service For Developers | Mailgun","og_description":"Wir haben Ruby zu unserer Liste von SDKs hinzugef\u00fcgt. M\u00f6chten Sie mehr dar\u00fcber erfahren, wie Sie E-Mails \u00fcber Mailgun mit Ruby versenden? Weiterlesen...","og_url":"https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","article_modified_time":"2026-09-16T02:52:09+00:00","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":"4\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/","url":"https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/","name":"Das offizielle Mailgun Ruby Gem ist da - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","datePublished":"2019-07-16T00:00:00+00:00","dateModified":"2026-09-16T02:52:09+00:00","description":"Wir haben Ruby zu unserer Liste von SDKs hinzugef\u00fcgt. M\u00f6chten Sie mehr dar\u00fcber erfahren, wie Sie E-Mails \u00fcber Mailgun mit Ruby versenden? Weiterlesen...","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.mailgun.com\/de\/blog\/product\/das-offizielle-mailgun-ruby-sdk-ist-da\/#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\/das-offizielle-mailgun-ruby-sdk-ist-da\/#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":"Das offizielle Mailgun-Ruby-Gem ist da"}]},{"@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\/23274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":1,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/23274\/revisions"}],"predecessor-version":[{"id":23276,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/23274\/revisions\/23276"}],"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=23274"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog_category?post=23274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}