Create Mailing List Member

Add to an existing mailing list. [See the docs here](https://documentation.mailgun.com/en/latest/api-mailinglists.html#mailing-lists)

Script mailgun Verified

by paulattaiffloth ยท 6/6/2022

The script

Submitted by hugo697 Typescript (fetch-only)
Verified 362 days ago
1
type Mailgun = {
2
  api_key: string;
3
};
4

5
export async function main(
6
  resource: Mailgun,
7
  data: {
8
    listAddress: string;
9
    member: {
10
      address: string;
11
      name?: string;
12
      vars?: Record<string, string>;
13
      subscribed?: boolean;
14
      upsert?: boolean;
15
    };
16
  }
17
) {
18
  const form = new FormData();
19
  form.append("address", data.member.address);
20
  form.append("name", data.member.name || "");
21
  form.append(
22
    "vars",
23
    data.member.vars ? JSON.stringify(data.member.vars) : "{}"
24
  );
25
  form.append("subscribed", data.member.subscribed);
26
  form.append("upsert", data.member.upsert);
27

28
  return (
29
    await fetch(
30
      `https://api.mailgun.net/v3/lists/${data.listAddress}/members`,
31
      {
32
        method: "POST",
33
        headers: {
34
          Authorization:
35
            "Basic " +
36
            Buffer.from(`api:${resource.api_key}`).toString("base64"),
37
        },
38
        body: form,
39
      }
40
    )
41
  ).json();
42
}
43