Send e-post med Ruby
Send en transaksjonell e-post fra Ruby med en enkelt POST til /v1/email, autentisert med en Bearer API-nøkkel. Det finnes ingen offisiell Ruby-SDK, så du kaller REST-endepunktet direkte. Eksempelet nedenfor bruker bare standardbiblioteket, så det er ingen gem å installere. Se Send e-post via API-et for full feltreferanse.
Forutsetninger
- En API-nøkkel, lest fra miljøvariabelen
MAILHUSET_API_KEY. - Et verifisert avsenderdomene for
from-adressen.
net/http
require 'net/http'
require 'uri'
require 'json'
uri = URI('https://api.mailhuset.com/v1/email')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = "Bearer #{ENV.fetch('MAILHUSET_API_KEY')}"
request['Content-Type'] = 'application/json'
request.body = {
from: 'Acme <hello@yourdomain.com>',
to: ['customer@example.com'],
subject: 'Your receipt',
html: '<p>Thanks for your order.</p>',
text: 'Thanks for your order.'
}.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
if response.is_a?(Net::HTTPSuccess)
message = JSON.parse(response.body)
puts "Accepted: #{message['id']}"
else
# 401 bad/missing key, 403 from-domain not verified, 422 validation error.
warn "Send failed (#{response.code}): #{response.body}"
endFelt
Bygg JSON-kroppen med de faktiske feltene: from (Name <address> på et verifisert domene), to (en liste), subject, og innholdet som html og text (send begge når du kan). cc, bcc, replyTo (lister) og idempotencyKey er valgfrie. Hele listen står i Send e-post via API-et.
Svar
En 2xx returnerer den aksepterte meldingen, inkludert id-en dens. Net::HTTPSuccess dekker det området. Feil: 401 feil eller manglende nøkkel, 403 from-domenet er ikke verifisert, 422 en valideringsfeil (svaret sier hvilket felt).
Neste steg
Gjenbruk innhold med Maler, og spor levering med Webhooks. Vil du ha en typet klient? Node og Python har offisielle SDK-er.
Trenger du hjelp? Send e-post til support@mailhuset.com.