vue-email
TypeScript icon, indicating that this package has built-in type declarations

0.8.0-beta.8Β β€’Β PublicΒ β€’Β Published

vue-email

πŸ’Œ vue-email

npm version npm downloads license docs

Simple way to build email templates in vue.

[!IMPORTANT]
Experimental and under heavy development. APIs are subject to change.

Features

Setup

πŸ“– Read the documentation

# pnpm
pnpm add -D vue-email

# npm
npm i -D vue-email

Basic Usage

πŸ“– Read the documentation

// components/template-email.vue
<script setup>
import { EButton, EHr, EHtml, EText } from 'vue-email';
import { ref } from 'vue';
   
const user = ref('Dave');
</script>

<template>
   <e-html lang="en">
      <e-text>Hello, {{ user }}!</e-text>
      <e-hr />
      <e-button href="vuejs.org">Visit vue</e-button>
   </e-html>
</template>

You can see the full example here

Advanced Usage - SSR

πŸ“– Read the SSR documentation

For SSR, you need to install @vue-email/compiler, now compiler with support for deno, and bun.

import express from "express";
import { config } from "@vue-email/compiler";

const app = express();

const vueEmail = config("./templates", {
  verbose: false,
  options: {
    baseUrl: "https://vue-email-demo.vercel.app/",
  },
});

app.get("/", async function (req, res) {
  const template = await vueEmail.render("WelcomeEmail.vue", {
    props: {
      name: "John Doe",
    },
  });
  res.send(template);
});

app.listen(3000);

πŸ’» Development

  1. Clone this repository
  2. Enable Corepack using corepack enable
  3. Install dependencies using pnpm install

πŸ›Ÿ Support

If you like our work, please feel to free to support us!

  • BTC: 1Bwo1Htd47rLRM4PZhydWtoC5ZAR4Fv9KZ
  • USDT: binance-qr

Contributors

Repo Activity

πŸ“ Annotations

This project is inspired by react-email

License

This project is licensed under MIT

Package Sidebar

Install

npm i vue-email

Homepage

vuemail.net/

Weekly Downloads

857

Version

0.8.0-beta.8

License

MIT

Unpacked Size

8.47 kB

Total Files

15

Last publish

Collaborators

  • flowko
  • dave136