2015-09-07 3 views
3

Nous travaillons à l'intégration de notre application de messagerie électronique avec SparkPost. Le seul problème que nous avons est d'obtenir des e-mails de rebond de SparkPost pour les exclure des futurs mailings. Notre application récupère les e-mails de rebond directement à partir du serveur de messagerie. Lorsque l'utilisateur utilise les paramètres SMTP de SparkPost dans notre logiciel, il ne peut pas récupérer et traiter les emails rebondis car SparkPost ne transmet pas les messages de rebond à l'adresse e-mail de rebond de l'utilisateur.Comment faire pour recevoir des e-mails de rebond de SparkPost sans utiliser les webhooks?

Les Webhooks ne fonctionneront pas pour nous car ils extraient des données en temps réel uniquement. Si notre logiciel est désactivé lorsque l'e-mail de rebond arrive, le rebond ne sera pas détecté et sera perdu pour notre logiciel car il n'y a aucun moyen de le récupérer plus tard. Alors, s'il vous plaît, laissez-moi savoir s'il existe un moyen d'obtenir des e-mails de rebond de SparkPost via API ou par e-mail, tout comme le fait Amazon SES. Amazon SES transfère simplement les e-mails de rebond à l'adresse e-mail spécifiée par l'utilisateur dans notre application (retournez le champ d'en-tête de l'e-mail dans l'en-tête du message).

Répondre

5

Si vous ne pouvez pas accepter poussé les données via HTTP comme webhooks événement ou même nos webhooks relais, la meilleure chose serait notre API Evénements Message (https://www.sparkpost.com/api#/reference/message-events/message-events/search-for-message-events)

Vous pouvez faire une demande pour obtenir juste bounces pour la dernière heure comme ceci:

https://api.sparkpost.com/api/v1/message-events?events=bounce,out_of_band

Si vous voulez plus de temps spécifique gammes ajouter seulement de/vers ainsi qu'un fuseau horaire si vous avez besoin que:

https://api.sparkpost.com/api/v1/message-events?from=2015-09-10T00:00&to=2015-09-10T23:59&timezone=America/New_York

+0

Salut Robert, Merci pour votre réponse. Nous avons fait la demande comme ça https://api.sparkpost.com/api/v1/message-events?events=bounce&from=2015-01-10T00:00&to=2015-09-10T23:59&timezone=America/ New_York et a obtenu la réponse ci-dessous si nous avons 5 rebonds dans notre console: { "résultats": [], "TOTAL_COUNT": 0, "liens": [] } S'il vous plaît, laissez-nous savoir ce que nous faisons mal. – Alex

+0

Je ne peux pas voir la requête Params car elle a été tronquée dans votre commentaire. Ce résultat signifie qu'il n'y a pas eu d'événements pour la plage de temps spécifiée avec votre requête Params. Si vous omettez de et à, il est par défaut à la dernière heure –

+0

Salut Robert, voici la pleine demande: 'https://api.sparkpost.com/api/v1/message-events?events=bounce&from=2015- 01-10T00: 00 & to = 2015-09-10T23: 59 & timezone = America/New_York' – Alex

1

j'ai écrit le code Ruby ci-dessous pour les obtenir au format CSV:

require 'net/http' 
require 'json' 
require 'csv' 

uri = URI('https://api.sparkpost.com/api/v1/message-events?events=bounce,out_of_band') 
req = Net::HTTP::Get.new(uri) 
req['Content-Type'] = 'application/json' 
req['Authorization'] = ENV['API_KEY'] || raise('please provide API_KEY env variable') 

res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |https| 
    https.request(req) 
end 

bounces = JSON.parse(res.body)['results'] 
puts "#{bounces.count} bounces found" 

CSV.open("bounces.csv", "wb") do |csv| 
    csv << %w(Timestamp Recipient Reason) 
    bounces.each do |bounce| 
    csv << [bounce['timestamp'], bounce['rcpt_to'], bounce['reason']] 
    end 
end 

Disponible ici essentiel: https://gist.github.com/schmijos/05d2f989c7a5854fe2cd31c666f61c39