@parsrun/email
v0.1.33
Published
Edge-compatible email sending for Pars - Resend, SendGrid, Postmark, AWS SES
Maintainers
Readme
@parsrun/email
Edge-compatible email sending for Pars with multiple provider support.
Features
- Multi-Provider: Resend, SendGrid, Postmark
- Edge-Compatible: Works on Cloudflare Workers, Deno
- Templates: Built-in email templates
- Queue Support: Async email sending
Installation
pnpm add @parsrun/emailQuick Start
import { createEmailService } from '@parsrun/email';
const email = createEmailService({
provider: 'resend',
apiKey: process.env.RESEND_API_KEY,
from: '[email protected]',
});
await email.send({
to: '[email protected]',
subject: 'Welcome!',
html: '<h1>Hello World</h1>',
});API Overview
Providers
Resend
import { createResendProvider } from '@parsrun/email/providers/resend';
const provider = createResendProvider({
apiKey: process.env.RESEND_API_KEY,
});SendGrid
import { createSendGridProvider } from '@parsrun/email/providers/sendgrid';
const provider = createSendGridProvider({
apiKey: process.env.SENDGRID_API_KEY,
});Postmark
import { createPostmarkProvider } from '@parsrun/email/providers/postmark';
const provider = createPostmarkProvider({
serverToken: process.env.POSTMARK_SERVER_TOKEN,
});Console (Development)
import { createConsoleProvider } from '@parsrun/email/providers/console';
const provider = createConsoleProvider(); // Logs emails to consoleEmail Service
const email = createEmailService({
provider: resendProvider,
from: '[email protected]',
replyTo: '[email protected]',
});
// Send simple email
await email.send({
to: '[email protected]',
subject: 'Hello',
html: '<p>Hello World</p>',
text: 'Hello World',
});
// Send with attachments
await email.send({
to: '[email protected]',
subject: 'Report',
html: '<p>See attached</p>',
attachments: [
{
filename: 'report.pdf',
content: pdfBuffer,
},
],
});Templates
import { templates } from '@parsrun/email/templates';
// OTP Email
const html = templates.otp({
code: '123456',
expiresIn: '10 minutes',
});
// Welcome Email
const html = templates.welcome({
name: 'John',
appName: 'MyApp',
});
// Magic Link
const html = templates.magicLink({
url: 'https://app.example.com/verify?token=...',
expiresIn: '15 minutes',
});Exports
import { ... } from '@parsrun/email'; // Main exports
import { ... } from '@parsrun/email/providers/resend'; // Resend
import { ... } from '@parsrun/email/providers/sendgrid'; // SendGrid
import { ... } from '@parsrun/email/providers/postmark'; // Postmark
import { ... } from '@parsrun/email/templates'; // Email templatesLicense
MIT
