mcpField
E
extension-email

extension-email

github.com/caffeinelabs开发228.6k 次安装1 周前更新
代码仓库

关于 extension-email

用于从后端 canister 发送服务类和事务性邮件的 Caffeine AI Skill。它向每位收件人单独发送邮件,并以成功或错误结果报告发送状态,不会因失败抛出异常。

主要功能

  1. 01发送服务类和事务性邮件
  2. 02向每位收件人单独发送邮件
  3. 03返回明确的成功或错误结果

适用场景

  1. 01发送订单确认邮件
  2. 02发送一次性通知

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/caffeinelabs/skills --skill extension-email

安装后在 Claude Code 中输入/extension-email确认已加载。

详细介绍

电子邮件 — 服务/事务性

适用于 Caffeine AI 的服务/事务性电子邮件扩展。

概述

此技能支持从后端 canister 发送服务和事务性电子邮件。使用 sendServiceEmail 发送订单确认、通知及类似的一次性电子邮件。

后端

此组件用于发送服务/事务性电子邮件。

这里提供了预制模块 mo:caffeineai-email/emailClient.mo,该模块不可修改。

  • 使用 sendServiceEmail 函数。
  • 每位收件人都会收到一封单独的电子邮件。
  • 它会返回一个 SendResult;如果电子邮件发送成功,则结果为 #ok,否则为 #err(error),其中包含错误文本。
  • 发送失败时绝不会抛出异常。所有失败(包括网关错误)都会以 #err 返回。
module {
  public type SendResult = {
    #ok;
    #err : Text;
  };

  public func sendServiceEmail(
    fromUsername : Text,
    recipients : [Text],
    subject : Text,
    htmlBody : Text,
  ) : async SendResult;
};

sendServiceEmail 的用法:

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);
      };
    };
  };
};

从先前版本升级

使用 caffeineai-email 0.3.x 构建的应用可通过 mops add [email protected] 重新固定依赖。sendServiceEmail 和 sendRawEmail 的签名保持不变。现在,每次发送都会通过邮件网关进行,并使用平台在每次部署时注入的设置(INTEGRATIONS_GATEWAY_URL / INTEGRATIONS_GATEWAY_API_KEY);不再使用传输 canister 和 INTEGRATIONS_CANISTER_ID,如果缺少这些设置,发送会返回 #err,而不会回退到其他方式。使用验证、营销或日历电子邮件的应用,请参阅相应技能中的升级说明。

使用 caffeineai-email 0.2.x 构建的应用可通过 mops add [email protected] 重新固定依赖。sendServiceEmail 和 sendRawEmail 的签名保持不变;现在每次发送都会携带幂等键,因此重试的外部调用只会发送并计费一次。使用验证或营销电子邮件的应用,请参阅相应技能中的升级说明。

评论

支持 Markdown