extension-email

Send transactional emails from a backend canister via emailClient.mo.

1|Updated Mar 24, 2026
One-click install
npx skills add https://github.com/caffeinelabs/skills --skill extension-email
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: extension-email
Source: https://github.com/caffeinelabs/skills/tree/main/skills/extension-email
Command: npx skills add https://github.com/caffeinelabs/skills --skill extension-email

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill enables backend services to send reliable service and transactional emails (e.g., order confirmations, notifications) without mixing with marketing or verification workflows.

Core Features & Use Cases

  • SendServiceEmail: Use a simple API to send an email to each recipient individually.
  • Prefabricated client: Uses mo:caffeineai-email/emailClient.mo which cannot be modified.
  • Return value: The operation returns a SendResult with #ok on success or #err(error) on failure.
  • Typical scenarios: Order confirmations, payment receipts, and system notifications.

Quick Start

Configure the backend to import the email client, then call sendServiceEmail with a from username, a recipient list, a subject, and an HTML body to deliver a transactional email.

Frequently Asked Questions about extension-email

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send transactional emails from a Motoko backend canister?

To send transactional emails from a Motoko backend canister, import the mo:caffeineai-email/emailClient.mo module and call sendServiceEmail with a from username, recipient list, subject, and HTML body to deliver messages.

What is the best way to send order confirmations and payment receipts from a backend canister?

Sending order confirmations and payment receipts from a backend canister is best handled by a dedicated service email client that triggers one-off transactional messages for backend events, returning a SendResult with #ok or #err(error).

Can I modify the email client module when sending service emails?

No, you cannot modify the email client module when sending service emails because the Skill relies on the prefabricated mo:caffeineai-email/emailClient.mo module, which is designed to be used as-is.

How does a backend canister handle email delivery failures?

A backend canister handles email delivery failures by returning a SendResult with #err(error) from the sendServiceEmail call, allowing the backend service to catch and process the failure state directly.

Does this service email approach work for marketing or verification workflows?

No, this service email approach does not work for marketing or verification workflows; it is specifically designed to send reliable service and transactional emails like order confirmations and system notifications without mixing workflows.