integrations
SendGrid
Learn how to send an email using Vue Email and the SendGrid Node.js SDK.
1. Install dependencies
Get the SendGrid Node.js SDK.
pnpm
pnpm add @sendgrid/mail
2. Create an email using Vue
Start by building your email template in a .vue
file.
emails/welcome.vue
<script lang="ts" setup>
defineProps<{ url: string }>();
</script>
<template>
<e-html lang="en">
<e-button :href="url">
View on GitHub
</e-button>
</e-html>
</template>
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.
Nuxt 3
// server/api/send-email.post.ts
import { useCompiler } from '#vue-email'
import sendgrid from '@sendgrid/mail';
sendgrid.setApiKey(process.env.SENDGRID_API_KEY);
export default defineEventHandler(async (event) => {
const template = await useCompiler('welcome.vue', {
props: {
url: 'https://vuemail.net/',
}
})
const options = {
from: 'you@example.com',
to: 'user@gmail.com',
subject: 'hello world',
html: template,
};
await sendgrid.send(options);
return { message: 'Email sent' };
});