Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@
/extensions/close-finder @qeude
/extensions/cloud-cli-login-statuses @AdamVyborny
/extensions/cloudflare @Destiner @niklaswa @teziovsky @xmok
/extensions/cloudflare-email-routing @erayack
/extensions/cloudflare-warp @anandubajith
/extensions/cloudinary @colbyfayock @xmok
/extensions/cnpj-lookup @xilopaint
Expand Down
1 change: 1 addition & 0 deletions .github/extensionName2Folder.json
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,7 @@
"qeude/close-finder": "close-finder",
"adam_vyborny/cloud-cli-login-statuses": "cloud-cli-login-statuses",
"destiner/cloudflare": "cloudflare",
"erayack/cloudflare-email-routing": "cloudflare-email-routing",
"anandubajith/cloudflare-warp": "cloudflare-warp",
"colbyfayock/cloudinary": "cloudinary",
"xilopaint/cnpj-lookup": "cnpj-lookup",
Expand Down
3 changes: 2 additions & 1 deletion .github/raycast2github.json
Original file line number Diff line number Diff line change
Expand Up @@ -2193,5 +2193,6 @@
"weicodes": "wei",
"maxoliinyk": "maxoliinyk",
"Caramel": "CaramelFur",
"sbertix": "third774"
"sbertix": "third774",
"erayack": "erayack"
}
2 changes: 1 addition & 1 deletion docs/.config.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"version": "1.101.0"
"version": "1.101.1"
}
10 changes: 10 additions & 0 deletions extensions/cloudflare-email-routing/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
node_modules/
dist/
.DS_Store
*.log
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
raycast-env.d.ts
8 changes: 8 additions & 0 deletions extensions/cloudflare-email-routing/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"semi": true,
"trailingComma": "es5",
"singleQuote": false,
"printWidth": 120,
"tabWidth": 2,
"useTabs": false
}
11 changes: 11 additions & 0 deletions extensions/cloudflare-email-routing/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Cloudflare Email Routing Changelog

## [Initial Version] - 2025-07-17

### Added

**Create Email Aliases:** Quickly generate new, random email aliases that forward to your primary inbox.
**List & Filter Aliases:** View all your existing aliases. Search and filter them by email address, description, or tags.
**Manage Aliases:** Edit the label and description of your aliases or delete them directly from Raycast.
**View Alias Details:** See detailed information for each alias, including its creation date and forwarding address.
**Colored Tags:** Tags are assigned a unique, consistent color for easier visual identification.
70 changes: 70 additions & 0 deletions extensions/cloudflare-email-routing/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Cloudflare Email Routing

A Raycast extension that allows you to create, list, edit, and delete Cloudflare email aliases directly from Raycast.

## Features

- 📧 **Create Email Aliases**: Instantly generate random email aliases that forward to your real inbox.
- 📋 **List & Search**: View and search all your email aliases.
- ✏️ **Edit Alias Label**: Quickly update the label of any alias.
- 🗑️ **Delete Aliases**: Remove aliases you no longer need.
- 📋 **Quick Copy**: Copy email addresses to the clipboard.
- ⚡️ **Alias Pooling**: Pre-allocate a pool of aliases for even faster creation (optional).

## Screenshots

![Onboarding](./metadata/cloudflare-email-routing-1.png)
![Commands](./metadata/cloudflare-email-routing-2.png)
![Create Email Alias](./metadata/cloudflare-email-routing-3.png)
![List Email Alias](./metadata/cloudflare-email-routing-4.png)
![Edit Email Alias](./metadata/cloudflare-email-routing-5.png)


## Prerequisites

1. **Cloudflare Account**: A Cloudflare account with a configured domain.
2. **Email Routing**: Email Routing must be enabled for your domain in Cloudflare.
3. **API Token**: A Cloudflare API token with the necessary "Email Routing" permissions.

For a detailed guide on setting up your Cloudflare account and obtaining the required credentials, please follow the [setup instructions](https://github.com/webmonch/hide-my-mail-cloudflare/blob/main/SETUP.md).

## Setup

After installing the extension, you will need to configure the following preferences in Raycast:

- **Cloudflare API Key**: Your API token with `Email Routing:Edit` permissions.
- **Zone ID**: The Zone ID for the domain where your email routing is configured.
- **Destination Email Address**: The real email address where your aliases will forward emails to.
- **Pre-allocate Alias Pool** (Optional): Enable to pre-create a pool of unused aliases for faster generation.

## Usage

### List Email Aliases Command

- **View Aliases**: See a list of all your active email aliases.
- **Search**: Search aliases by email address or label.
- **Toggle Details**: Press `⌘D` to view detailed information for an alias.
- **Copy Email**: Press `⌘C` to copy the alias's email address.
- **Edit Alias**: Press `⌘E` to open the edit view for the selected alias.
- **Delete Alias**: Press `⌘⇧D` to delete the selected alias (with confirmation).
- **Copy Forwarding Address**: Press `⌘⇧C` to copy the destination email address.

### Create Email Alias Command

- **Create New Alias**: Generate a new, random email alias.
- **Add Label**: Assign a label to your new alias for organization.
- **Use Random Unused Alias**: Press `⌘R` for quick creation using a pre-allocated alias with a default label.

## How It Works

This extension utilizes Cloudflare's Email Routing API to manage forwarding rules. It stores metadata within the rule's name using a specific format: `[hide_mail]|<timestamp>|<label>|<description>`. This allows the extension to manage aliases without needing a separate database.

## Security

- Your API token and other credentials are stored securely using Raycast's preference system.
- All API calls are made directly from your machine to the Cloudflare API.
- No third-party servers are involved in any part of the process.

## Privacy

This extension communicates only with the Cloudflare API and Raycast. No user data is collected or sent to any other services.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions extensions/cloudflare-email-routing/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
const { defineConfig } = require("eslint/config");
const raycastConfig = require("@raycast/eslint-config");

module.exports = defineConfig([
...raycastConfig,
]);
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading