从MailGun中提取电子邮件列表地址

时间:2014-07-20 16:49:33

标签: mailgun

我想将地址OUT OF MailGun解压缩为CSV并完全删除MailGun。 MailGun数据库是951地址的唯一副本。除了查看MailGun中的列表之外,我绝对不能以任何形式访问数据库。

http://documentation.mailgun.com/api-mailinglists.html#mailing-lists

3 个答案:

答案 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})

请注意,限制和跳过对于通过您的成员列表进行分页非常有用。

相关问题