Menu

StackMachine
    Send emails

    Send email.
    Skip the provider.

    Send receipts, invites, and notifications from any app with one call. StackMachine queues the message, takes care of the sending domain, and tells you what happened to it.

    From an agent's request to an inbox.

    An agent sends a request. StackMachine turns it into an email, which is queued, sent, and delivered to an inbox.

    An illustration, with example data.

    Powering products and agents at

    Wasmer logo
    Simply Static logo
    Tiiny logo
    Manus logo
    ModularDS logo
    One call to send
    Recipients, subject, plain text, and HTML, with cc, bcc, and reply-to when you need them.
    No sender to set up
    Turn email on for the app. The platform provisions its credentials and verifies the mail domain before it delivers.
    Know what happened
    Every message carries a status: queued, sent, delivered, or failed.

    Send the message.
    See how it went.

    Send from your backend, then list what the app has sent to confirm a flow or answer a support question.

    Shell
    $ npm install stackmachine

    Read the docs

    send.js
    import StackMachine from "stackmachine";
    
    const client = new StackMachine(process.env.STACKMACHINE_API_KEY);
    
    const message = await client.emails.send({
      app: "da_XYZ",
      to: ["ada@example.com"],
      subject: "Your receipt",
      textBody: "Thanks for your order.",
      htmlBody: "<p>Thanks for your order.</p>",
    });
    
    console.log(message.id, message.status);
    
    const sent = await client.emails.sent.list({ app: "da_XYZ", limit: 10 });

    From one message
    to the whole history.

    Send from code, and look any message up afterwards.

    A record of every message

    List sent and received mail by app or by owner, each with its status and timestamps, so support has one place to look.

    Sentstorefront
    • Your receiptada@example.comdelivered
    • Welcome to Acmelin@example.comsent
    • Reset your passwordsam@example.comqueued
    • Invoice 1042kim@example.comfailed

    One setting to turn it on

    Add enable_email: true to the app's configuration and redeploy. You do not verify a sender before you submit a message.

    App configuration

    enable_email: true

    • Sender credentials provisioned
    • Mail domain verified before delivery

    A few things
    to know.

    More in the documentation.

    No. Enable email for the app and submit the message. The platform verifies the mail domain before it delivers.

    Start with your first message.

    One API key for hosting, storage, databases, email, and cron.