Send an email
Copy
Ask AI
require 'net/http'
require 'json'
require 'uri'
uri = URI("https://app.usesendi.com/api/emails")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer snd_your_api_key"
request["Content-Type"] = "application/json"
request.body = {
from: "you@yourdomain.com",
to: ["user@example.com"],
subject: "Hello from Sendi",
html: "<p>It just works.</p>"
}.to_json
response = http.request(request)
data = JSON.parse(response.body)
puts data["id"]
With name in from
Copy
Ask AI
request.body = {
from: "Your App <noreply@yourdomain.com>",
to: ["user@example.com"],
subject: "Welcome",
html: "<h1>Welcome aboard</h1>"
}.to_json
Using Rails (Action Mailer)
Configure inconfig/environments/production.rb:
Copy
Ask AI
config.action_mailer.delivery_method = :sendi
lib/sendi_delivery.rb:
Copy
Ask AI
class SendiDelivery
def initialize(settings)
@api_key = settings[:api_key]
end
def deliver!(mail)
uri = URI("https://app.usesendi.com/api/emails")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer #{@api_key}"
request["Content-Type"] = "application/json"
request.body = {
from: mail.from.first,
to: mail.to,
subject: mail.subject,
html: mail.html_part&.body&.to_s,
text: mail.text_part&.body&.to_s
}.to_json
http.request(request)
end
end