Product
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.