This is a fork of Carsten Lebek's Svelte Email project.
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:
npm install @keycloakify/svelte-email
yarn install @keycloakify/svelte-email
src/$lib/emails/Hello.svelte
<script>
import { Button, Hr, Html, Text } from 'svelte-email';
export let name = 'World';
</script>
<html lang="en">
<Text> Hello, {name}! </Text>
<hr />
<button href="https://svelte.dev">Visit Svelte</button>
</html>
This example uses Nodemailer to send the email. You can use any other email service provider.
src/routes/emails/hello/+server.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({
template: Hello,
props: {
name: 'Svelte',
},
});
const options = {
from: '[email protected]',
to: '[email protected]',
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.
Emails built with React Email can be converted into HTML and sent using any email service provider. Here are some examples:
- Luca Peruzzo (@luca-peruzzo)
Authors of the original project svelte-email
- Carsten Lebek (@carstenlebek)