Email SDK
Adapters

Scaleway

Configure the Scaleway Transactional Email adapter.

Scaleway logo
Scaleway
@opencoredev/email-sdk/scaleway
OfficialNot API testedRequest tested
Open website

Scaleway Transactional Email supports address fields, headers, reply-to, and attachments. The adapter defaults to the fr-par region unless you pass a different region.

Before live sends

Create a Scaleway secret key, confirm the project ID and region, and verify the sending domain in Scaleway Transactional Email. If your project uses a region other than fr-par, pass region in code or SCALEWAY_REGION in the CLI environment.

Configure

import { createEmailClient } from "@opencoredev/email-sdk";
import { scaleway } from "@opencoredev/email-sdk/scaleway";

const email = createEmailClient({
  adapters: [
    scaleway({
      secretKey: process.env.SCALEWAY_SECRET_KEY!,
      projectId: process.env.SCALEWAY_PROJECT_ID!,
    }),
  ],
});

Send

const result = await email.send({
  from: "Acme <hello@acme.com>",
  to: "user@example.com",
  cc: "billing@example.com",
  replyTo: "support@example.com",
  subject: "Scaleway Transactional Email test",
  html: "<p>It works.</p>",
  headers: {
    "X-Trace-ID": "trace_123",
  },
});

console.log(result.provider, result.id);

Scaleway maps replyTo as a Reply-To additional header. If you already set a Reply-To header manually, omit replyTo to avoid a validation error.

Send with an attachment

await email.send({
  from: "Acme <hello@acme.com>",
  to: "user@example.com",
  subject: "Receipt",
  text: "The receipt is attached.",
  attachments: [
    {
      filename: "receipt.txt",
      content: "Order ord_123",
      contentType: "text/plain",
    },
  ],
});

Options

OptionTypeRequiredNotes
secretKeystringYesScaleway secret key.
projectIdstringYesScaleway project ID.
regionstringNoDefaults to fr-par.
baseUrlstringNoDefaults to https://api.scaleway.com.
fetchtypeof fetchNoUseful for tests or custom runtimes.

Scaleway maps address objects, CC/BCC, attachments, custom headers, and replyTo through the Transactional Email REST API. Unsupported fields throw before the API call.

Response

The adapter maps Scaleway id or email_id to the normalized id field.

CLI smoke test

SCALEWAY_SECRET_KEY="..." \
SCALEWAY_PROJECT_ID="..." \
npx email-sdk send \
  --adapter scaleway \
  --from "Acme <hello@acme.com>" \
  --to user@example.com \
  --subject "Scaleway test" \
  --text "It works"

On this page