SDK Ruby et Rails
Le gem Ruby est généré depuis le contrat Spore et fournit des modèles pour
chaque requête et réponse. Son namespace est SporeEmail afin de ne pas entrer
en conflit avec l’ancien gem spore déjà présent sur RubyGems.
Installation
# Gemfile
gem "spore-email"Puis installez la dépendance :
bundle installConfiguration Rails
# config/initializers/spore.rb
SporeEmail.configure do |config|
config.api_key["Authorization"] = ENV.fetch("SPORE_API_KEY")
config.api_key_prefix["Authorization"] = "Bearer"
endEn local, vous pouvez aussi assigner
config.host = "http://localhost:4110" dans ce même initializer.
Envoyer un email
require "securerandom"
message = SporeEmail::SendEmailSendEmailRequest.new(
from: "hello@votredomaine.fr",
to: ["alex@example.com"],
subject: "Bienvenue",
html: "<p>Votre compte est prêt.</p>"
)
result = SporeEmail::MessagingApi.new.send_email(
message,
idempotency_key: SecureRandom.uuid
)Dans un ActiveJob, utilisez le job_id comme clé d’idempotence. Un retry du
même job ne créera ainsi pas un second message chez Spore.
Gérer les erreurs
begin
result = SporeEmail::MessagingApi.new.send_email(message)
rescue SporeEmail::ApiError => error
Rails.logger.error(error.message)
end