Scaleway
Configure the Scaleway Transactional Email adapter.
@opencoredev/email-sdk/scalewayScaleway 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
| Option | Type | Required | Notes |
|---|---|---|---|
secretKey | string | Yes | Scaleway secret key. |
projectId | string | Yes | Scaleway project ID. |
region | string | No | Defaults to fr-par. |
baseUrl | string | No | Defaults to https://api.scaleway.com. |
fetch | typeof fetch | No | Useful 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"