Analyzed Apr 21, 2026
caffeinelabs/skills
extension-email
Support for sending service/transactional emails. Don't use this for sending marketing emails or verification emails.
Installation
npx skills add caffeinelabs/skills --skill extension-email
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Audit a website's SEO with Firecrawl. Use when the user asks for an SEO audit, metadata and hea…
31.6K installsUniversal AI-powered web scraper for any platform. Scrape data from Instagram, Facebook, TikTok…
15.2K installsVue 3 patterns with Clerk — composables (useAuth, useUser, useClerk, useOrganization), Vue Rout…
11.4K installsUse when building email features, emails going to spam, high bounce rates, setting up SPF/DKIM/…
8.9K installsSecurity audits
Partner security reviews for this skill.
Analyzed Apr 21, 2026
Analyzed Apr 21, 2026
0 alerts
Also in this package
Other skills from caffeinelabs/skills · top by installs.
npx skills add caffeinelabs/skills
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Repository health
main
Skill metadata
Parsed from SKILL.md frontmatter.
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md2,003 B -
docs
SUMMARY.md137 B
History
- First seen on skills.sh
- First recorded snapshot · 18,700 installs
SKILL.md
Email — Service/Transactional
Service/transactional email extension for Caffeine AI.
Overview
This skill adds support for sending service and transactional emails from the backend canister. Use sendServiceEmail for order confirmations, notifications, and similar one-off emails.
Backend
This component is for sending service/transactional emails.
There is the prefabricated module mo:caffeineai-email/emailClient.mo which cannot be modified.
- Use the sendServiceEmail function.
- Each recipient is sent an individual email
- It returns a SendResult which is #ok if the email is sent successfully otherwise #err(error) with the error text.
```mo:caffeineai-email/emailClient.mo module { public type SendResult = { #ok; #err : Text; };
public func sendServiceEmail( fromUsername : Text, recipients : [Text], subject : Text, htmlBody : Text, ) : async SendResult; };
Usage for `sendServiceEmail`:
```motoko filepath=src/backend/main.mo
import Runtime "mo:core/Runtime";
import EmailClient "mo:caffeineai-email/emailClient";
actor {
public func sendOrderConfirmationEmail(recipientEmailAddress : Text, username : Text, orderReference : Text) : async () {
let result = await EmailClient.sendServiceEmail(
"no-reply",
[recipientEmailAddress],
"Order " # orderReference # " confirmed",
"Hello " # username # ",\nYour order " # orderReference # " has been confirmed. Your items will ship tomorrow.",
);
switch (result) {
case (#ok) {};
case (#err(error)) {
Runtime.trap("Failed to send order confirmation email: " # error);
};
};
};
};