2015-09-07 90 views
3

我们正在将我们的电子邮件应用程序与SparkPost进行整合。我们唯一的问题是从SparkPost获取退回电子邮件,以排除他们未来的邮件。我们的应用程序直接从邮件服务器检索退回电子邮件。当用户在我们的软件中使用SparkPost SMTP设置时,他无法检索并处理退回电子邮件,因为SparkPost不会将退回邮件转发到用户的退回电子邮件地址。如何在不使用webhooks的情况下从SparkPost反弹电子邮件?

Webhooks不适合我们,因为它们只能实时提取数据。如果我们的软件在退回邮件到达时被关闭,则反弹将不会被捕获,并且会因为我们的软件而丢失,因为以后无法恢复。

因此,请让我知道是否有方法通过API或通过电子邮件像Amazon SES那样从SparkPost获取反弹电子邮件。 Amazon SES只会将退回电子邮件转发到我们的应用程序中用户指定的电子邮件地址(邮件标题中的退回电子邮件标题字段)。

回答

5

如果你不能接受通过HTTP类似事件网络挂接,甚至我们的中继网络挂接推送的数据,下一个最好的事情是我们的消息事件API(https://www.sparkpost.com/api#/reference/message-events/message-events/search-for-message-events

你可以做一个请求,只得到了最后一小时反弹像这样:

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

如果你想更具体的时间范围刚从/添加一个,以及一个时区,如果你需要的是:

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

+0

嗨罗伯特, 谢谢您的答复。 我们提出了这样的要求 https://api.sparkpost.com/api/v1/message-events?events=bounce&from=2015-01-10T00:00&to=2015-09-10T23:59&timezone=America/ New_York 并得到了下面虽然我们已经在我们的控制台5个弹跳响应: { “成果”:[], “TOTAL_COUNT”:0, “链接”:[] } 请让我们知道我们做错了什么。 – Alex

+0

我看不到查询参数,因为它在您的评论中被截断。那个结果意味着在您的查询参数中指定的时间范围内没有事件。如果你忽略和去,它默认为最后一小时 –

+0

嗨罗伯特,这里是完整的请求: 'https://api.sparkpost.com/api/v1/message-events?events=bounce&from=2015- 01-10T00:00&到= 2015-09-10T23:59&timezone = America/New_York' – Alex

1

我写了下面的Ruby代码,让他们为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 

可作为依据的位置:https://gist.github.com/schmijos/05d2f989c7a5854fe2cd31c666f61c39

相关问题