// Create a suppression entry for a recipient.
import { MailChannels } from "mailchannels-sdk";
const { MAILCHANNELS_API_KEY, RECIPIENT, SUPPRESSION_TYPES } = process.env;
if (!MAILCHANNELS_API_KEY) throw new Error("Set MAILCHANNELS_API_KEY (parent or sub-account) before running");
if (!RECIPIENT) throw new Error("Set RECIPIENT to the email address to suppress");
const mailchannels = new MailChannels(MAILCHANNELS_API_KEY);
// SUPPRESSION_TYPES is optional, a comma-separated list (e.g. "transactional,non-transactional").
// If unset, MailChannels uses the default "non-transactional".
const entry = { recipient: RECIPIENT };
if (SUPPRESSION_TYPES) {
entry.types = SUPPRESSION_TYPES.split(",").map((t) => t.trim()).filter(Boolean);
}
const { success, error } = await mailchannels.suppressions.create({ entries: [entry] });
if (!success) {
console.error("Create suppression failed:", error);
process.exit(1);
}
console.log("Suppression created");