Learn how to send an email using Vue Email and Plunk Node.js SDK.

1. Install dependencies

Get the Plunk Node.js SDK.

pnpm add @plunk/node

2. Create an email using Vue

Start by building your email template in a .vue file.

<script lang="ts" setup>
defineProps<{ url: string }>()

  <e-html lang="en">
    <e-button :href="url">
      View on GitHub

Step 3: Convert to HTML and send email

Import the email template you just built, convert into a HTML string, and use the Nodemailer SDK to send it.

// server/api/
import Plunk from '@plunk/node'
import { useCompiler } from '#vue-email'

const plunk = new Plunk(process.env.PLUNK_API_KEY)

export default defineEventHandler(async (event) => {
  const template = await useCompiler('welcome.vue', {
    props: {
      url: '',

  await plunk.emails.send({
    to: '',
    subject: 'Hello world',
    body: template.html,

  return { message: 'Email sent' }