# mail.tm

> Create free, throwaway email inboxes with mail.tm and read what arrives: test a sign-up flow end to end, catch a verification code or link, then delete the inbox. No account or API key is required.

App · 9 actions. Web page: https://docs.lodol.com/docs/integrations/mail-tm

## Actions

### Create inbox

Create a new throwaway email inbox and get its address and password. Use the address wherever an email should go, such as a sign-up form, then read what arrives with 'Wait for an email'. The other mail.tm steps take this address and password.

**Inputs**

- Name (`username`, text): The part before the @. Leave empty for a random one, which is never already taken.
- Domain (`domain`, text): The part after the @. Leave empty to use the first one mail.tm offers.
- Password (`password`, text): Leave empty and a strong one is made for you. Either way, the step returns it.

**Outputs**

- `address` (text)
- `created_at` (text)
- `domain` (text)
- `inbox_id` (text)
- `password` (text)

**Example output**

```json
{
  "address": "k3x9q2m7p1ab@maxxspace.com",
  "created_at": "2026-10-15T17:58:07Z",
  "domain": "maxxspace.com",
  "inbox_id": "6ad1142f52ef514b9c0fef28",
  "password": "q7Zr1vKx9LmPw2NcT5yHbE3s"
}
```

### Delete email

Delete one email from an inbox.

**Inputs**

- Inbox address (`address`, text, required): The inbox's email address, the 'address' 'Create inbox' returned.
- Inbox password (`password`, text, required): The inbox's password, the 'password' 'Create inbox' returned.
- Email ID (`message_id`, text, required): The email's 'message_id', from 'List emails' or 'Wait for an email'.

**Outputs**

- `address` (text)
- `deleted` (true/false)
- `message_id` (text)

**Example output**

```json
{
  "address": "k3x9q2m7p1ab@maxxspace.com",
  "deleted": true,
  "message_id": "6ad11460e0b629a3e73e56b5"
}
```

### Delete inbox

Delete an inbox and every email in it. The address stops receiving email.

**Inputs**

- Inbox address (`address`, text, required): The inbox's email address, the 'address' 'Create inbox' returned.
- Inbox password (`password`, text, required): The inbox's password, the 'password' 'Create inbox' returned.

**Outputs**

- `address` (text)
- `deleted` (true/false)

**Example output**

```json
{
  "address": "k3x9q2m7p1ab@maxxspace.com",
  "deleted": true
}
```

### Get email

Read one email in full: the text (made from the HTML when the email has no text version), the HTML, every link, the link to click (verify, confirm, sign in...), any verification code and the names of its attachments.

**Inputs**

- Inbox address (`address`, text, required): The inbox's email address, the 'address' 'Create inbox' returned.
- Inbox password (`password`, text, required): The inbox's password, the 'password' 'Create inbox' returned.
- Email ID (`message_id`, text, required): The email's 'message_id', from 'List emails' or 'Wait for an email'.
- Mark as read (`mark_as_read`, true/false): Mark the email read once it has been read here. Default: `true`.

**Outputs**

- `address` (text)
- `attachments` (list)
- `cc` (list)
- `codes` (list)
- `from_address` (text)
- `from_name` (text)
- `has_attachments` (true/false)
- `html` (text)
- `links` (list)
- `message_id` (text)
- `preview` (text)
- `read` (true/false)
- `received_at` (text)
- `size_bytes` (number)
- `subject` (text)
- `text` (text)
- `to` (list)
- `verification_code` (text)
- `verification_link` (text)

**Example output**

```json
{
  "address": "k3x9q2m7p1ab@maxxspace.com",
  "attachments": [],
  "cc": [],
  "codes": [
    "482913"
  ],
  "from_address": "no-reply@acme.example",
  "from_name": "Acme",
  "has_attachments": false,
  "html": "<p>Welcome to Acme!</p><p>Your verification code is <strong>482913</strong>.</p><a href=\"https://acme.example/verify?token=f3a9c1\">Confirm email</a>",
  "links": [
    {
      "text": "Confirm email",
      "url": "https://acme.example/verify?token=f3a9c1"
    }
  ],
  "message_id": "6ad11460e0b629a3e73e56b5",
  "preview": "Your verification code is 482913. Or click the button below to confirm your email address.",
  "read": true,
  "received_at": "2026-10-15T17:58:55Z",
  "size_bytes": 4182,
  "subject": "Confirm your Acme account",
  "text": "Welcome to Acme!\n\nYour verification code is 482913.\n\nOr confirm your email address: https://acme.example/verify?token=f3a9c1",
  "to": [
    "k3x9q2m7p1ab@maxxspace.com"
  ],
  "verification_code": "482913",
  "verification_link": "https://acme.example/verify?token=f3a9c1"
}
```

### Get inbox

Check an inbox still works and see how many emails it holds and how much of its storage they use.

**Inputs**

- Inbox address (`address`, text, required): The inbox's email address, the 'address' 'Create inbox' returned.
- Inbox password (`password`, text, required): The inbox's password, the 'password' 'Create inbox' returned.

**Outputs**

- `address` (text)
- `created_at` (text)
- `inbox_id` (text)
- `message_count` (number)
- `storage_limit_bytes` (number)
- `storage_used_bytes` (number)

**Example output**

```json
{
  "address": "k3x9q2m7p1ab@maxxspace.com",
  "created_at": "2026-10-15T17:58:07Z",
  "inbox_id": "6ad1142f52ef514b9c0fef28",
  "message_count": 1,
  "storage_limit_bytes": 40000000,
  "storage_used_bytes": 4182
}
```

### Get raw email

Get an email exactly as it was received, with every header read out (From, Reply-To, Message-ID, DKIM and the rest). Useful for checking how an email was sent.

**Inputs**

- Inbox address (`address`, text, required): The inbox's email address, the 'address' 'Create inbox' returned.
- Inbox password (`password`, text, required): The inbox's password, the 'password' 'Create inbox' returned.
- Email ID (`message_id`, text, required): The email's 'message_id', from 'List emails' or 'Wait for an email'.

**Outputs**

- `address` (text)
- `headers` (object)
- `message_id` (text)
- `size_bytes` (number)
- `source` (text)

**Example output**

```json
{
  "address": "k3x9q2m7p1ab@maxxspace.com",
  "headers": {
    "Date": "Thu, 15 Oct 2026 17:58:55 +0000",
    "From": "Acme <no-reply@acme.example>",
    "Message-ID": "<38b2d374a5abb4f9@acme.example>",
    "Subject": "Confirm your Acme account",
    "To": "k3x9q2m7p1ab@maxxspace.com"
  },
  "message_id": "6ad11460e0b629a3e73e56b5",
  "size_bytes": 4182,
  "source": "From: Acme <no-reply@acme.example>\r\nTo: k3x9q2m7p1ab@maxxspace.com\r\nSubject: Confirm your Acme account\r\n\r\nYour verification code is 482913."
}
```

### List emails

List the emails in an inbox, newest first: sender, subject, a short preview and whether each has been read. Use 'Get email' to read one in full.

**Inputs**

- Inbox address (`address`, text, required): The inbox's email address, the 'address' 'Create inbox' returned.
- Inbox password (`password`, text, required): The inbox's password, the 'password' 'Create inbox' returned.
- Unread only (`unread_only`, true/false): Only list emails that haven't been read yet. Default: `false`.
- From contains (`from_contains`, text): Only emails whose sender's name or address contains this, such as 'github.com' or 'Acme'. Upper or lower case doesn't matter.
- Subject contains (`subject_contains`, text): Only emails whose subject contains this, such as 'verify'. Upper or lower case doesn't matter.
- Maximum emails (`limit`, number): The most emails to list. From 1 to 300. Default: `30`.

**Outputs**

- `address` (text)
- `message_count` (number)
- `messages` (list)
- `total_in_inbox` (number)

**Example output**

```json
{
  "address": "k3x9q2m7p1ab@maxxspace.com",
  "message_count": 1,
  "messages": [
    {
      "from_address": "no-reply@acme.example",
      "from_name": "Acme",
      "has_attachments": false,
      "message_id": "6ad11460e0b629a3e73e56b5",
      "preview": "Your verification code is 482913. Or click the button below to confirm your email address.",
      "read": false,
      "received_at": "2026-10-15T17:58:55Z",
      "size_bytes": 4182,
      "subject": "Confirm your Acme account",
      "to": [
        "k3x9q2m7p1ab@maxxspace.com"
      ]
    }
  ],
  "total_in_inbox": 1
}
```

### Mark email as read or unread

Mark an email read, or unread so 'Wait for an email' and 'List emails' with 'Unread only' pick it up again.

**Inputs**

- Inbox address (`address`, text, required): The inbox's email address, the 'address' 'Create inbox' returned.
- Inbox password (`password`, text, required): The inbox's password, the 'password' 'Create inbox' returned.
- Email ID (`message_id`, text, required): The email's 'message_id', from 'List emails' or 'Wait for an email'.
- Read (`read`, true/false): Tick to mark it read; untick to mark it unread. Default: `true`.

**Outputs**

- `address` (text)
- `message_id` (text)
- `read` (true/false)

**Example output**

```json
{
  "address": "k3x9q2m7p1ab@maxxspace.com",
  "message_id": "6ad11460e0b629a3e73e56b5",
  "read": false
}
```

### Wait for an email

Wait for a new email to arrive in an inbox, up to two minutes, then read it: the text, its links, the link to click (verify, confirm, sign in...) and any verification code. Takes the oldest unread email that matches and marks it read, so the next wait gets the next one.

**Inputs**

- Inbox address (`address`, text, required): The inbox's email address, the 'address' 'Create inbox' returned.
- Inbox password (`password`, text, required): The inbox's password, the 'password' 'Create inbox' returned.
- From contains (`from_contains`, text): Only emails whose sender's name or address contains this, such as 'github.com' or 'Acme'. Upper or lower case doesn't matter.
- Subject contains (`subject_contains`, text): Only emails whose subject contains this, such as 'verify'. Upper or lower case doesn't matter.
- Wait up to (seconds) (`wait_seconds`, number): How long to wait for the email. From 5 to 120. Default: `60`.
- Stop the workflow if no email arrives (`fail_if_none`, true/false): Turn off to carry on instead, with 'found' set to false. Default: `true`.

**Outputs**

- `address` (text)
- `attachments` (list)
- `cc` (list)
- `codes` (list)
- `found` (true/false)
- `from_address` (text)
- `from_name` (text)
- `has_attachments` (true/false)
- `html` (text)
- `links` (list)
- `message_id` (text)
- `preview` (text)
- `read` (true/false)
- `received_at` (text)
- `size_bytes` (number)
- `subject` (text)
- `text` (text)
- `to` (list)
- `verification_code` (text)
- `verification_link` (text)
- `waited_seconds` (number)

**Example output**

```json
{
  "address": "k3x9q2m7p1ab@maxxspace.com",
  "attachments": [],
  "cc": [],
  "codes": [
    "482913"
  ],
  "found": true,
  "from_address": "no-reply@acme.example",
  "from_name": "Acme",
  "has_attachments": false,
  "html": "<p>Welcome to Acme!</p><p>Your verification code is <strong>482913</strong>.</p><a href=\"https://acme.example/verify?token=f3a9c1\">Confirm email</a>",
  "links": [
    {
      "text": "Confirm email",
      "url": "https://acme.example/verify?token=f3a9c1"
    }
  ],
  "message_id": "6ad11460e0b629a3e73e56b5",
  "preview": "Your verification code is 482913. Or click the button below to confirm your email address.",
  "read": true,
  "received_at": "2026-10-15T17:58:55Z",
  "size_bytes": 4182,
  "subject": "Confirm your Acme account",
  "text": "Welcome to Acme!\n\nYour verification code is 482913.\n\nOr confirm your email address: https://acme.example/verify?token=f3a9c1",
  "to": [
    "k3x9q2m7p1ab@maxxspace.com"
  ],
  "verification_code": "482913",
  "verification_link": "https://acme.example/verify?token=f3a9c1",
  "waited_seconds": 7
}
```
