我想将地址OUT OF MailGun解压缩为CSV并完全删除MailGun。 MailGun数据库是951地址的唯一副本。除了查看MailGun中的列表之外,我绝对不能以任何形式访问数据库。
http://documentation.mailgun.com/api-mailinglists.html#mailing-lists
答案 0 :(得分:2)
使用curl,php或任何其他编程语言,您可以实现此目的,然后只需通过控制面板删除邮件列表:
curl -s --user 'api:YOURAPIKEY' -G \
https://api.mailgun.net/v2/lists/Your@MailingListName.com/members
Apikey和邮件列表名称可从控制面板获得!
答案 1 :(得分:2)
这是我在 C#中解决此问题的方法,它可以获取列表中的所有成员(不仅限于100个)。此外,我使用 Newtonsoft.Json 即可。更新:我发现'total_count'的最大值为10000,因此,如果邮件列表中的成员数超过10000,请求将返回最大值10000 !在这种情况下,这不是一个很好的解决方案!
public void ExportMailList(string listName)
{
RestClient client = new RestClient();
List<MemberDetail> totalMember = new List<MemberDetail>();
client.BaseUrl = new Uri("https://api.mailgun.net/v3");
client.Authenticator =
new HttpBasicAuthenticator("api",
"key-yourKey");
RestRequest reqForTotal = new RestRequest();
reqForTotal.Resource = "lists/{list}/members";
reqForTotal.AddParameter("list", listName, ParameterType.UrlSegment);
int resultTotal= JsonConvert.DeserializeObject<Member>(client.Execute(reqForTotal).Content).total_count;
int skipTimes = resultTotal / 100;
for (int i = 0; i <= skipTimes; i++)
{
RestRequest request = new RestRequest();
request.Resource = "lists/{list}/members";
request.AddParameter("list", listName, ParameterType.UrlSegment);
request.AddParameter("skip",100*i);
totalMember.AddRange(JsonConvert.DeserializeObject<Member>(client.Execute(request).Content).items);
}
//CreateCSVFromGenericList(...);
}
public class Member
{
public List<MemberDetail> items { get; set; }
public int total_count { get; set; }
}
public class MemberDetail
{
public string address { get; set; }
public string name { get; set; }
public bool subscribed { get; set; }
public object vars { get; set; }
}
在方法CreateCSVFromGenericList(..)中,您可以引用this blog,并以您想要的任何格式将数据导出到.csv文件。
答案 2 :(得分:0)
在python中:
def get_members():
return requests.get(
"https://api.mailgun.net/v3/lists/LIST_NAME/members",
auth=("api", "key-YOUR_KEY"),
data={'limit': 100, 'skip': 1380})
请注意,限制和跳过对于通过您的成员列表进行分页非常有用。