extension-email-raw

作成者: caffeinelabs

複数のTo、CC、BCCアドレスでメールを送信します。

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

Email — Raw Multi-Recipient

Raw multi-recipient email extension for Caffeine AI.

Overview

This skill adds support for sending emails with multiple to, cc, and bcc recipients. Not suitable for bulk service emails (recipients see each other).

Backend

This extension is for sending an email with support for multiple to, cc and bcc addresses.

  • This should NOT be used for sending service emails to multiple users because each recipient will see all the other recipients listed which would typically be a breach of user privacy.

For sending an email

  • This extension depends on the extension-email for sending emails.
  • Use the sendRawEmail function.
  • It returns a SendResult which is #ok if the email is sent successfully otherwise #err(error) with the error text.
  • There can be a maximum of 50 recipients in total
  • Each recipient receives the same email
module {
  public type SendResult = {
    #ok;
    #err : Text;
  };

  public func sendRawEmail(
    fromUsername : Text,
    to : [Text],
    cc : [Text],
    bcc : [Text],
    subject : Text,
    htmlBody : Text,
  ) : async SendResult;
};

Example usage for sending an email reminder to meeting attendees.

import Runtime "mo:core/Runtime";
import EmailClient "mo:caffeineai-email/emailClient";

actor {
  public func sendMeetingReminder(
    meetingSubject : Text,
    meetingTime : Text,
    confirmedAttendeeEmails : [Text],
    tentativeAttendeeEmails : [Text],
  ) : async () {
    let result = await EmailClient.sendRawEmail(
      "no-reply",
      confirmedAttendeeEmails,
      tentativeAttendeeEmails,
      [],
      meetingSubject,
      "Reminder the meeting will start at " # meetingTime,
    );

    switch (result) {
      case (#ok) {};
      case (#err(error)) {
        Runtime.trap("Failed to send meeting reminder email: " # error);
      };
    };
  };
};

caffeinelabsのその他のスキル

extension-stripe
caffeinelabs
Stripe を利用した決済サポート、クレジットカードおよびデビットカードに対応
extension-object-storage
caffeinelabs
一般的なファイル・オブジェクトストレージ。画像、動画、ファイル、ドキュメントなどの大量データに適しています。画像ギャラリー、動画ギャラリー、その他のファイルやオブジェクト管理に最適です。IC制限を超える大容量ファイルに対応し、ブラウザキャッシュされたHTTP URLアクセスを提供します。
developmentmedia
extension-openai
caffeinelabs
MANDATORY recipe for every Caffeine build that calls OpenAI (ChatGPT, GPT-4o, an LLM, a chatbot, embeddings). The ONLY supported path is the `openai-client` mops package with a canister-side API-key bearer. Hand-rolling `ic.http_request` to `api.openai.com/v1/...` is a FORBIDDEN anti-pattern — it leaks the bearer across replicated outcalls (security + 13× billing impact), bypasses the typed request/response bindings, and forces hand-rolled JSON on a language with poor JSON support. Load this...
developmentapisecurity
extension-http-outcalls
caffeinelabs
バックエンドキャニスター(フロントエンドではない)によって実行されるHTTPアウトコール。
developmentapi
connector-googlemail
caffeinelabs
Use the `googlemail-client` mops package whenever the user asks the canister to send email, compose a draft, list or read Gmail messages, or fetch the authenticated user's Gmail profile. The package wraps the Gmail REST API v1 at `https://gmail.googleapis.com` via outbound HTTPS calls.
communicationapiproductivity
extension-querying-oql
caffeinelabs
Quick reference for the Caffeine Data Intelligence agent to query an OQL-exposing canister (schema() + execute()) through the `icp` CLI against the project's `backend` canister: read the schema, form JSON queries (filter / order / paginate / aggregate / dotted-path edges), and parse the Candid result rows.
developmentdatabaseapi
extension-core-infrastructure
caffeinelabs
コアインフラストラクチャ。バックエンド接続設定、ストレージクライアント、Reactアプリのエントリポイントを提供します。
developmentapidevops
extension-posting-to-x
caffeinelabs
MANDATORY recipe for every Caffeine build that posts to X (Twitter). The ONLY supported path is the `x-client` mops package with OAuth 2.0 PKCE. Hand-rolling `ic.http_request` or `icBooking.http_request` calls to `api.x.com/2/tweets`, `api.x.com/2/oauth2/token`, or any other X endpoint is a FORBIDDEN anti-pattern — it bypasses bearer auth, replication-cost safeguards, and `x-client`'s null-field handling. Load this skill whenever the user, spec, or any prior task mentions tweeting,...
developmentapi