Loading...
Loading...
Generate professional, Outlook-compatible email templates (EML + HTML) through natural conversation. Creates pixel-perfect newsletter layouts, announcement emails, weekly reports, event invitations, and any formatted email that needs to render correctly in Outlook. MUST use this skill when the user wants to: create or design an email template, generate an EML file, make a newsletter, format an email for Outlook, design a 邮件模板, do 邮件排版 or 邮件设计, create HTML email with Outlook compatibility, build a professional-looking email to send via Outlook, or produce any kind of formatted/styled email output. Also trigger when the user mentions: weekly report email (周报邮件), product update email, event invitation email (活动邀请邮件), announcement email (公告邮件), company newsletter, or wants to make an email "look professional/beautiful" for sending. This skill handles the visual design and EML generation — not email sending, SMTP setup, or email parsing. Without this skill, Outlook emails will have broken layouts because Outlook uses Word's rendering engine which ignores modern CSS.
npx skill4agent add aiden0z/skills email-designerpython3 --version # macOS / Linux
python --version # Windows (check that output shows 3.x, not 2.x)uname -suname -msysteminfo中文: Email Designer 需要 Python 3.8 或更高版本。请访问 https://www.python.org/downloads/ 下载并安装适合你操作系统的版本,安装完成后重新运行。English: Email Designer requires Python 3.8 or later. Please visit https://www.python.org/downloads/ to download and install the version for your OS, then try again.
code-blocks/deps-checker.pycheck_and_install(features)features['charts']['images']['charts', 'images']| Feature | Packages | What It Enables |
|---|---|---|
| plotly, kaleido | Bar, line, heatmap, pie chart generation |
| pillow | Header banner compositing, image compression |
templates/layouts/rules/brand-color-extraction.mdcode-blocks/template-manager.pylist_templates()images/rules/chart-design-system.mdcode-blocks/chart-generator.pygen = EmailChartGenerator(container_width=WIDTH, output_dir='OUTPUT/images')
path = gen.bar_chart(categories=[...], series={...}, title='...', filename='chart_name.png')images/{chart_name}.pngcode-blocks/header-generator.pygen = HeaderGenerator()
path = gen.generate(title='...', subtitle='...', output_path='OUTPUT/images/header_banner.jpg',
bg_image='path/to/bg.png') # or bg_color='#2563eb' for solidimages/header_banner.jpgimages/rules/design-system.mdcode-blocks/image-optimizer.pyresults = optimize_directory('OUTPUT/images/', threshold_kb=200)
# results = [(filename, original_kb, compressed_kb), ...]rules/outlook-compatibility.mdrules/design-system.mdrules/design-system-data-report.mdrules/chart-design-system.mdrules/email-best-practices.mdrules/style-presets.mdrules/placeholder-i18n.mdtemplates/components/*.htmlexamples/example-*.htmltemplates/components/rules/outlook-compatibility.md<div style="display:none;">Preview text</div><body>code-blocks/html-validator.pyvalidate(html)code-blocks/output-manager.pycreate_project(name)./output/2026-03-15_product-report/{project_dir}/newsletter-preview.htmlcode-blocks/preview-helper.pyopen_in_browser()ascii_layout_summary(html)code-blocks/content-filler.pygenerate_fill_template(html)fill_batch(html, content_dict, image_dir)unfilled_placeholders(html)code-blocks/html-patcher.pyreplace_color(html, old, new)change_width(html, old_w, new_w)replace_text(html, old, new)add_section(html, section_html)patch_file(path, colors={...}, texts={...})html-validator.pyvalidate(patched_html)code-blocks/html-to-eml.py# How to execute: write a modified copy of the script with filled-in CONFIG values,
# then run it with: python3 /path/to/modified_script.py
# The CONFIG section to modify:
HTML_FILE = "output/newsletter-preview.html" # your generated HTML
OUTPUT_EML = "output/newsletter.eml" # output path
SUBJECT = "..." # ask user
SENDER = "" # optional
TO_ADDRS = [] # optional
IMAGE_DIR = "output/images" # if images existemailX-Unsent: 1code-blocks/template-manager.pysave_template()templates/guides/outlook-usage-guide-zh.mdtemplates/guides/outlook-usage-guide-en.mdrules/
outlook-compatibility.md ← Read before generating HTML (Outlook rendering rules)
design-system.md ← Universal: colors, typography, spacing (ALWAYS read)
design-system-data-report.md ← Extension: KPI cards, status badges, trends (data emails only)
email-best-practices.md ← Design guidance (widths, colors, typography)
style-presets.md ← 3 design styles: Corporate, Editorial, Minimal
placeholder-i18n.md ← Localized placeholder text (zh/en/ja)
chart-design-system.md ← Chart colors, typography, sizing (read before chart generation)
brand-color-extraction.md ← Color extraction + preset palettes
templates/
components/*.html ← 19 Outlook-safe HTML building blocks
(header, section, card, table, image-placeholder,
divider, footer, stats-grid, nav-bar, status-badge,
progress-bar, button, callout, testimonial,
feature-list, pricing-table, team-member,
alert, timeline)
layouts/*.md ← 7 preset layout descriptions
(single-column, two-column, magazine, announcement,
dashboard, transactional, onboarding)
guides/*.md ← End-user Outlook usage guides (zh/en)
code-blocks/
html-validator.py ← Run AFTER generating, BEFORE EML (auto-check 32 rules)
html-patcher.py ← Targeted edits (color, width, text) without regenerating
output-manager.py ← Timestamped project directories for organized output
eml-builder.py ← EML builder class (fluent API)
cid-embedder.py ← Image scanning + placeholder PNG creation
html-to-eml.py ← Complete HTML→EML script (execute this)
content-filler.py ← {{placeholder}} replacement + batch filling
template-manager.py ← Save/load/list custom templates
preview-helper.py ← Browser auto-open + ASCII layout
deps-checker.py ← Auto-install optional dependencies (charts, images)
chart-generator.py ← Plotly chart generation (bar, line, heatmap, pie)
header-generator.py ← Header banner image compositing (text on background)
image-optimizer.py ← Image compression (PNG→JPEG, resize, optimize)
examples/
example-single-column.html ← Complete 600px single-column reference
example-two-column.html ← Complete 800px two-column reference