Package Exports
- @upyo/mailgun
- @upyo/mailgun/package.json
Readme
@upyo/mailgun
Mailgun transport for the Upyo email library.
Installation
npm add @upyo/core @upyo/mailgun
pnpm add @upyo/core @upyo/mailgun
yarn add @upyo/core @upyo/mailgun
deno add --jsr @upyo/core @upyo/mailgun
bun add @upyo/core @upyo/mailgunUsage
import { createMessage } from "@upyo/core";
import { MailgunTransport } from "@upyo/mailgun";
import fs from "node:fs/promises";
import process from "node:process";
const message = createMessage({
from: "sender@example.com",
to: "recipient@example.net",
subject: "Hello from Upyo!",
content: { text: "This is a test email." },
attachments: [
new File(
[await fs.readFile("image.jpg"), "image.jpg", { type: "image/jpeg" }]
)
],
});
const transport = new MailgunTransport({
apiKey: process.env.MAILGUN_KEY!,
domain: process.env.MAILGUN_DOMAIN!,
region: process.env.MAILGUN_REGION as "us" | "eu",
});
const receipt = await transport.send(message);
if (receipt.successful) {
console.log("Message sent with ID:", receipt.messageId);
} else {
console.error("Send failed:", receipt.errorMessages.join(", "));
}Configuration
See the Mailgun docs for more information about configuration options.
Available Options
apiKey: Your Mailgun API keydomain: Your Mailgun domainregion: Mailgun region (usoreu, defaults tous)timeout: Request timeout in milliseconds (default: 30000)retries: Number of retry attempts (default: 3)tracking: Enable tracking (default: true)clickTracking: Enable click tracking (default: true)openTracking: Enable open tracking (default: true)