我使用mailgun发送电子邮件。它有api添加“取消订阅我”功能。我在我的rails应用程序中使用它。
使用此命令,我获得所有未订阅用户的列表,即unsubscribes mailgun表中的条目。
RestClient.get "https://api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0" "@api.mailgun.net/v2/samples.mailgun.org/unsubscribes"
我将其输出存储在@unsubscriber中。所以我的控制器有:
@unsubscribers = RestClient.get "https://api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0" "@api.mailgun.net/v2/samples.mailgun.org/unsubscribes"
当我在视图中显示输出时,<%= @unsubscribers%>我得到字符串:
{
"total_count": 1,
"items": [{
"created_at": "Sun, 11 Aug 2013 08:07:22 GMT",
"tag": "*",
"id": "sdfsdfw12423535456",
"address": "xyz@abc.com"
}]
}
由于我想从我的数据库中删除未订阅的电子邮件,我只想在@unsubscribers中发送电子邮件。但它包含整个字符串。
我没有得到如何从上面的字符串中提取电子邮件,以便我可以在@unsubscribers中找到电子邮件列表,我可以从我的应用程序中删除它们。
有人能帮助我吗?
答案 0 :(得分:1)
如果您尝试访问第一个订户的地址:
@unsubscriber['items'].first['address']
更安全的代码:
((@unsubscriber['items'] || []).first || {} )['address']
如果您要收集所有地址:
(@unsubscriber['items'] || []).map{|s| ['address']}
答案 1 :(得分:-1)
@unsubscriber
是一个哈希值。 items
是一个哈希数组。您需要使用[0]
获取第一个项目。然后你需要address
值
@unsubscriber["items"][0]["address"]