Build emails with Svelte
npm install svelte-emailAfter seeing react-email I have decided to create a similar library for Svelte. svelte-email enables you to write and design email templates with svelte and render them to HTML or plain text.
Install the package to your existing SvelteKit project:
``bash title="npm"`
npm install svelte-email
`bash title="pnpm"`
pnpm install svelte-email
src/$lib/emails/Hello.svelte
`html
Hello, {name}!
2. Send email
This example uses Nodemailer to send the email. You can use any other email service provider.
src/routes/emails/hello/+server.js`js
import { render } from 'svelte-email';
import Hello from '$lib/emails/Hello.svelte';
import nodemailer from 'nodemailer';const transporter = nodemailer.createTransport({
host: 'smtp.ethereal.email',
port: 587,
secure: false,
auth: {
user: 'my_user',
pass: 'my_password'
}
});
const emailHtml = render({
component: Hello,
props: {
name: 'Svelte'
}
});
const options = {
from: 'you@example.com',
to: 'user@gmail.com',
subject: 'hello world',
html: emailHtml
};
transporter.sendMail(options);
``For more information, please visit the documentation.
A set of standard components to help you build amazing emails without having to deal with the mess of creating table-based layouts and maintaining archaic markup.
- HTML
- Head
- Heading
- Button
- Link
- Image
- Divider
- Paragraph
- Container
- Preview
- Body
- Column
- Section
Emails built with React Email can be converted into HTML and sent using any email service provider. Here are some examples:
- Nodemailer
- SendGrid
- Postmark
- AWS SES
- Carsten Lebek (@carstenlebek)
- Bu Kinoshita (@bukinoshita)
- Zeno Rocha (@zenorocha)