Product

Das offizielle Mailgun-Ruby-Gem ist da

Wir haben Ruby zu unserer Liste von SDKs hinzugefügt. Möchten Sie mehr darüber erfahren, wie Sie E-Mails über Mailgun mit Ruby versenden? Weiterlesen...
Bild für Das offizielle Mailgun-Ruby-Gem ist da

Heute freuen wir uns, bekannt zu geben, dass wir Ruby zur Liste der offiziellen Mailgun-SDKs hinzugefügt haben. Wie bei unserem PHP-SDK haben wir einige Dienstprogramme wie Message Builder, Batch Sending und Opt-in-Handler integriert, um alltägliche Entwicklungsaufgaben zu vereinfachen. Wir freuen uns auf die Zusammenarbeit mit der Ruby-Community, um das SDK im Laufe der Zeit noch besser zu machen. Sie finden das SDK auf GitHub.

Falls Sie noch nicht mit einem SDK vertraut sind, sehen wir uns zunächst an, was erforderlich ist, um eine Nachricht über die Standard-HTTPS-Ruby-Bibliothek zu versenden.

Heute freuen wir uns, bekannt zu geben, dass wir Ruby zur Liste der offiziellen Mailgun-SDKs hinzugefügt haben. Wie bei unserem PHP-SDK haben wir einige Dienstprogramme wie Message Builder, Batch Sending und Opt-in-Handler integriert, um alltägliche Entwicklungsaufgaben zu vereinfachen. Wir freuen uns auf die Zusammenarbeit mit der Ruby-Community, um das SDK im Laufe der Zeit noch besser zu machen. Sie finden das SDK auf GitHub.

Falls Sie noch nicht mit einem SDK vertraut sind, sehen wir uns zunächst an, was erforderlich ist, um eine Nachricht über die Standard-HTTPS-Ruby-Bibliothek zu versenden.

Eine Nachricht senden:

                                

                                    require "net/https"  
require "uri"

uri = URI.parse("https://api.mailgun.net/v2/samples.mailgun.org/messages")

data = {'to'        => 'joe.sample@example.com',  
        'from'      => 'bill.sample@example.com',
        'subject'   => 'Hello from Ruby!',
        'text'      => 'Sent via Mailgun.'}

http = Net::HTTP.new(uri.host, uri.port)  
http.use_ssl = true

request = Net::HTTP::Post.new(uri.request_uri)  
request.basic_auth("api", "key-3ax6xnjp29jd6fds4gc373sgvjxteol0")  
request.set_form_data(data)

response = http.request(request)  
                                
                            

Mit dem obigen Code wird eine Nachricht über die Mailgun-API gesendet. Er enthält jedoch viel Code, der zwar wichtig, aber kompliziert und ziemlich unübersichtlich ist.

Mit unserem neuen SDK konnten wir die erforderliche Code-Menge auf wenige Zeilen reduzieren.

Eine Nachricht mit dem Mailgun Ruby SDK senden:

                                

                                        require 'mailgun'

    # First, instantiate the Mailgun Client with your API key
    mg_client = Mailgun::Client.new "your-api-key"

    # Define your message parameters
    message_params = {:from    => 'bob@sending_domain.com',  
              :to      => 'sally@example.com',
              :subject => 'The Ruby SDK is awesome!',
              :text    => 'It is really easy to send a message!'}

    # Send your message through the client
    mg_client.send_message "sending_domain.com", message_params
                                
                            

Events mit dem Mailgun Ruby SDK abrufen:

                                

                                        # First, instantiate the Client, then instantiate the Events helper.  
    mg_client = Mailgun::Client.new("your-api-key")  
    mg_events = Mailgun::Events.new(mg_client, "your-domain")

    result = mg_events.get({'limit' => 25,  
                    'recipient' => 'joe@example.com'})

    result.to_h['items'].each do | item |  
    # outputs "Delivered - 20140509184016.12571.48844@example.com"
    puts "#{item['event']} - #{item['message']['headers']['message-id']}"
end
                                
                            

Alle HTTP-Aktionen geben ein Antwortobjekt zurück, das in einen Hash oder in YAML konvertiert werden kann.

Angenommen, wir möchten mit derselben Abfrage die nächsten 25 Ergebnisse abrufen. Führen Sie einfach „next“ für das Objekt „mg_events“ aus. Das SDK verfolgt die Paginierungslinks der Events API.

result = mg_events.next

Hinweis: Wenn die Ergebnismenge kleiner als Ihr Limit ist, brauchen Sie sich keine Sorgen zu machen. Eine nachfolgende Abfrage von „next“ liefert die nächsten 25 Ergebnisse seit Ihrem letzten Aufruf von „next“ oder „get“.

Message Builder

Das Erstellen eines Arrays von Parametern kann für einige Code-Implementierungen schwierig sein. Daher haben wir eine Klasse integriert, mit der Sie Methodenaufrufe durchführen können, die automatisch ein ordnungsgemäß formatiertes Array von Nachrichtenparametern aufbauen.

Eine Nachricht mit dem Mailgun Ruby SDK und dem Message Builder senden:

                                

                                        # First, instantiate the Mailgun Client with your API key  
    mg_client = Mailgun::Client.new("your-api-key")  
    mb_obj = Mailgun::MessageBuilder.new()

    # Define the from address
    mb_obj.set_from_address("me@example.com", {"first"=>"Ruby", "last" => "SDK"});  
    # Define a to recipient
    mb_obj.add_recipient(:to, "john.doe@example.com", {"first" => "John", "last" => "Doe"});  
    # Define a cc recipient
    mb_obj.add_recipient(:cc, "sally.doe@example.com", {"first" => "Sally", "last" => "Doe"});  
    # Define the subject
    mb_obj.set_subject("A message from the Ruby SDK using Message Builder!");  
    # Define the body of the message
    mb_obj.set_text_body("This is the text body of the message!");

    # Campaign and other headers
    mb_obj.add_campaign_id("My-Awesome-Campaign");  
    mb_obj.add_custom_parameter("h:Customer-Id", "12345");

    # Attach a file and rename it
    mb_obj.add_attachment("/path/to/file/receipt_123491820.pdf", "Receipt.pdf");

    # Schedule message in the future
    mb_obj.set_delivery_time("tomorrow 8:00AM", "PST");

    # Finally, send your message using the client
    result = mg_client.send_message("sending_domain.com", mb_obj)

    puts result.body.to_s
                                
                            

Eine Liste aller verfügbaren Funktionen finden Sie in der Liste auf GitHub.

Batch Message

Zusätzlich zum Message Builder bieten wir Batch Message an. Mit dieser Klasse können 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 überwacht wird und die Nachricht automatisch an den Endpunkt gesendet wird, sobald Sie die 1.000. Adresse hinzugefügt haben. Das bedeutet, dass Sie Ihre Nachricht erstellen und mit der Iteration durch Ihre Datenbank beginnen können. Kümmern Sie sich nicht um den eigentlichen Versand der Nachricht – das SDK übernimmt bei Bedarf die Übermittlung an die API.

Eine Nachricht mit dem Mailgun Ruby SDK und Batch Message senden:

                                

                                        # First, instantiate the Mailgun Client with your API key  
    mg_client = Mailgun::Client.new("your-api-key")  
    mb_obj = Mailgun::BatchMessage.new(@mb_client, "example.com")

    # Define the from address
    mb_obj.set_from_address("me@example.com",  
                             {"first"=>"Ruby", 
                              "last" => "SDK"});
    # Define the subject
    mb_obj.set_subject("A message from the Ruby SDK using Message Builder!");

    # Define the body of the message
    mb_obj.set_text_body("Hello %recipient.first%,  
                 This is the text body of the message 
                 using recipient variables!
                 If you needed to reference the account-id
                 recipient variable, you could do it like 
                 this: %account-id%.");

    # Add several recipients
    mb_obj.add_recipient(:to, "john.doe@example.com",  
                                  {"first"      => "John", 
                                   "last"       => "Doe", 
                                   "account-id" => 1234});

    mb_obj.add_recipient(:to, "jane.doe@example.com",  
                                  {"first"      => "Jane", 
                                   "last"       => "Doe", 
                                   "account-id" => 5678});

    mb_obj.add_recipient(:to, "bob.doe@example.com",  
                                  {"first"       => "Bob", 
                                   "last"        => "Doe", 
                                   "account-id"  => 91011});
    ... etc ...

    mb_obj.add_recipient(:to, "sally.doe@example.com",  
                                  {"first"      => "Sally", 
                                   "last"       => "Doe", 
                                   "account-id" => 121314});

    # Send your message through the client
    message_ids = mg_client.finalize
                                
                            

Wie Sie sehen, erweitert Batch Message den Message Builder. Alle im Message Builder verfügbaren Funktionen stehen auch in Batch Message zur Verfügung. Werfen Sie einen Blick in die vollständigen Dokumentation auf GitHub.

Opt-in-Handler

Zu guter Letzt haben wir einen einfachen Double-Opt-in-Handler entwickelt, mit dem Sie eindeutige Opt-in-Links generieren können. Der Opt-in-Handler nutzt auch unseren Dienst zur Adressvalidierung um die Genauigkeit der E-Mail-Adressen zu überprüfen.

Der typische Ablauf für die Verwendung dieser Klasse sieht wie folgt aus:
Abonnement wird angefragt -> [Empfangsadresse validieren] -> [Opt-in-Link generieren] -> [Opt-in-Link per E-Mail senden]
Opt-in-Link wird geklickt -> [Opt-in-Link validieren] -> [Abonnement bestätigen] -> [Abschließende Bestätigung senden]

Verwenden Sie diese Klasse am besten für die Anmeldeformulare auf Ihrer Website. Dafür benötigen Sie einen über das Internet zugänglichen Webserver, der den Klick auf den Validierungslink verarbeitet.

Da jede Implementierung ziemlich individuell ist, finden Sie in der GitHub-Dokumentation Anwendungsbeispiele für diese Klasse.

Lassen Sie uns wissen, was Sie denken. Gibt es noch etwas, das Sie sich im SDK wünschen würden? Oder etwas, das Ihnen besonders gefällt? Wir freuen uns über Ihr Feedback.

Viel Spaß beim Versenden.