lettersanitizer

DOM-based HTML email sanitizer for in-browser email rendering.

Usage no npm install needed!

<script type="module">
  import lettersanitizer from 'https://cdn.skypack.dev/lettersanitizer';
</script>

README

lettersanitizer

DOM-based HTML email sanitizer for in-browser email rendering.

workflow npm npm NPM

Used in react-letter and vue-letter.

Installation

lettersanitizer is available on npm, you can install it with either npm or yarn:

npm install lettersanitizer
# or:
yarn install lettersanitizer

Example usage

import { sanitize } from 'lettersanitizer';

sanitize('<b>test</b><script>test</script>', '', { id: 'test' });
// <div id="test"><b>test</b></div>

sanitize function

lettersanitizer exposes a sanitize function that uses DOMParser to sanitize the HTML content of messages and returns HTML text.

text is used for fallback text in case of no HTML source being available. Plain text in that case is processed into safe HTML output.

interface SanitizerOptions {
  id?: string;
  dropAllHtmlTags?: boolean;
  rewriteExternalResources?: (url: string) => string;
  rewriteExternalLinks?: (url: string) => string;
  allowedSchemas?: string[];
  preserveCssPriority?: boolean;
  noWrapper?: boolean;
}

function sanitize(html: string, text?: string, options?: SanitizerOptions);