IMAP

Connect Pipedream to any IMAP email provider to trigger custom workflows.

Integrate the IMAP API with the Bash API

Setup the IMAP API trigger to run a workflow which integrates with the Bash API. Pipedream's integration platform allows you to integrate IMAP and Bash remarkably fast. Free for developers.

Run Bash Code with Bash API on New Email from IMAP API
IMAP + Bash
 
Try it
New Email from the IMAP API

Emit new event for each new email in a mailbox

 
Try it
Run Bash Code with the Bash API

Run any Bash in a Pipedream step within your workflow. Refer to the Pipedream Bash docs to learn more.

 
Try it

Overview of IMAP

Using Pipedream's IMAP API, developers can automate interactions with their email inbox, enabling serverless workflows that perform actions based on incoming emails. This could include parsing email contents, triggering events upon receiving emails from specific senders, attaching labels, and much more. By leveraging IMAP, Pipedream can act as a bridge between your email and other services, streamlining processes that would otherwise require manual intervention.

Connect IMAP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { once } from "events";
import imaps from "imap-simple";
import cycle from "cycle";

export default defineComponent({
  props: {
    imap: {
      type: "app",
      app: "imap",
    }
  },
  async run({steps, $}) {
    const { host, port, email, password } = this.imap.$auth;

    const connection = await imaps.connect({
      imap: {
        host,
        port,
        user: email,
        password,
        tls: true,
        tlsOptions: { servername: host },
        authTimeout: 3000
      },
    });

    const boxes = await connection.getBoxes();
    // Filter out circular references to parents
    const filteredBoxes = cycle.decycle(boxes);
    $.export("results", filteredBoxes);

    connection.end();
    await once(connection.imap, "end");
  },
})

Connect Bash

1
2
3
4
5
6
7
# $PIPEDREAM_STEPS file contains data from previous steps
cat $PIPEDREAM_STEPS | jq .trigger.context.id

# Write data to $PIPEDREAM_EXPORTS to return it from the step
# Exports must be written as key=value
echo foo=bar >> $PIPEDREAM_EXPORTS