Okay, so I've tried that with the exact structure
emails/
Email/
BrandedHeader.vue
MyMail.vue
<script setup>
import { ESection, EText } from "vue-email";
</script>
<template>
<e-heading as="h1">
Some Brand Name
</e-heading>
</template>
<script setup>
import { EButton, EHtml } from 'vue-email'
</script>
<template>
<EHtml lang="en">
<BrandedHeader/>
<EButton href="https://example.com" style="color: #61dafb">
Click me
</EButton>
</EHtml>
</template>
$ npx vue-email export
ℹ ✨ Generating HTML versions of emails 13:01:06
[Vue warn]: Failed to resolve component: BrandedHeader
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.
ℹ 🪄 Generated MyMail 13:01:06
ℹ 🪄 Generated Email/BrandedHeader
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html id="__vue-email" lang="en" dir="ltr">
<BrandedHeader></BrandedHeader>
<a data-id="__vue-email-button"
style="line-height:100%;text-decoration:none;display:inline-block;max-width:100%;color:#61dafb;"
href="https://example.com" target="_blank"><span><!--[if mso]><i style="letter-spacing: 0px;mso-font-width:-100%;mso-text-raise:0" hidden> </i><![endif]--></span><span
style="max-width:100%;display:inline-block;line-height:120%;text-decoration:none;text-transform:none;mso-padding-alt:0px;mso-text-raise:0;"> Click me </span><span><!--[if mso]><i style="letter-spacing: 0px;mso-font-width:-100%" hidden> </i><![endif]--></span></a>
</html>
I've tried that also with imports, but this leads to an error.