https://github.com/stephtr/mailchannels-react-email
https://github.com/stephtr/mailchannels-react-email
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/stephtr/mailchannels-react-email
- Owner: stephtr
- Created: 2024-04-15T18:03:02.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-16T00:34:20.000Z (about 2 years ago)
- Last Synced: 2025-09-20T01:36:41.796Z (10 months ago)
- Language: TypeScript
- Size: 15.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mailchannels-react-email
This package provides a simple interface for integrating MailChannels in your app, with optional support for [react-email](https://react.email/). It supports development mode logging and seamless DKIM signing.
## Features
- Full support for MailChannels features
- Optional integration for [react-email](https://react.email/)
- Development mode for fast testing (console)
- Environment-based or explicit DKIM configuration
## Installation
```bash
npm install mailchannels-react-email
```
## Quick Start
For how to set up Mailchannels with Cloudflare, see [their documentation](https://developers.cloudflare.com/pages/functions/plugins/mailchannels/#enable-mailchannels-for-your-account---domain-lockdown).
### Sending Basic Emails
```js
import sendEmail from "mailchannels-react-email";
try {
await sendEmail({
subject: "Test email",
text: "This is a test email",
from: { name: "John Doe", email: "john@example.com" },
to: "smith@example.com",
});
} catch (e) {
console.error(`Error sending the mail: ${e.message}`);
}
```
### Using React Components for Emails
```js
import sendEmail from "mailchannels-react-email/react-email";
import TestEmail from "./testmail";
try {
await sendEmail(, {
subject: "Test email",
from: { name: "John Doe", email: "john@example.com" },
to: { email: "smith@example.com" },
});
} catch (e) {
console.error(`Error sending the mail: ${e.message}`);
}
```
## API Reference
### DKIM
Mailchannels supports signing your emails using DKIM. You can either supply the dkim domain, selector and private key, or just provide them as environment variables `DKIM_DOMAIN`, `DKIM_SELECTOR`, `DKIM_PRIVATE_KEY`, which will be automatically picked up.
### Email options
```ts
type EmailOptions = {
subject: string;
text: string;
html?: string;
from: MailContact;
to: MailContacts;
cc?: MailContacts;
bcc?: MailContacts;
replyTo?: MailContact;
dkim?: {
domain: string;
selector: string;
privateKey: string;
};
attachments?: Array;
};
type MailContact = string | { name?: string; email: string };
type MailContacts = MailContact | Array;
type Attachment = {
contentType: string;
filename: string;
content: Buffer | ArrayBuffer | string; // base64 encoded string
};
```