-
Notifications
You must be signed in to change notification settings - Fork 363
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c36e6e0
commit f9fb785
Showing
1 changed file
with
90 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,92 @@ | ||
# Multiple Proxies | ||
|
||
This page will come shortly. | ||
For advanced use cases, Reacher supports a routing mechanism to route email verification requests to different proxies depending on the MX host. | ||
|
||
The configuration is divided in 2 steps: | ||
|
||
1. Define a list of proxies. e.g. `"proxy1"`, `"proxy2"`etc... | ||
2. Define routing rules, e.g. `route Gmail to "proxy1"`, `route Hotmail B2B to "proxy2"`etc... | ||
|
||
### 1. Define a list of Proxies | ||
|
||
The simple Reacher configuration allows to define a default proxy via the following environmental variables: | ||
|
||
* `RCH__PROXY__HOST`: The hostname of the proxy. | ||
* `RCH__PROXY__PORT`: The port of the proxy. | ||
* `RCH__PROXY__USERNAME`: (Optional) A username for authentication. | ||
* `RCH__PROXY__PASSWORD`: (Optional) A password for authentication. | ||
|
||
On top of the default proxy, Reacher allows you to configure multiple other proxies: | ||
|
||
* `RCH__OVERRIDES__PROXIES__{your-proxy-id-uppercase}__HOST`  | ||
* `RCH__OVERRIDES__PROXIES__{your-proxy-id-uppercase}__PORT`  | ||
* `RCH__OVERRIDES__PROXIES__{your-proxy-id-uppercase}__USERNAME`  | ||
* `RCH__OVERRIDES__PROXIES__{your-proxy-id-uppercase}__PASSWORD`  | ||
|
||
Replace `{your-proxy-id-uppercase}`with any unique name of your choosing. We recommend to use `PROXY1`, `PROXY2` for simplicity. | ||
|
||
### 2. Define routing rules | ||
|
||
Reacher allows to configure custom routing rules based on the MX host. To do so, set the following environment variables: | ||
|
||
* `RCH__OVERRIDES__{email-provider}__TYPE=smtp` | ||
* `RCH__OVERRIDES__{email-provider}__PROXY={your-proxy-id-lowercase}` | ||
|
||
where you replace: | ||
|
||
* `{email-provider}` with one of the following `GMAIL`, `HOTMAILB2B`, `HOTMAILB2C`, `PROOFPOINT`, `MIMECAST`, `YAHOO`. | ||
* `{your-proxy-id-lowercase}` with one of the proxies you defined in step 1. Make sure to respect the lowercase here. | ||
|
||
You can define multiple of these `RCH__OVERRIDES__` environment variables for different MX hosts. All the remaining emails which don't match any of the overrides will go through the default proxy. | ||
|
||
### Example | ||
|
||
Below is a [Docker Compose](https://docs.docker.com/compose/) file showcasing: | ||
|
||
* routing Gmail and Proofpoint emails to proxy1 | ||
* routing Hotmail B2B emails to proxy2 | ||
* routing everything else to the default proxy | ||
|
||
```yaml | ||
services: | ||
worker: | ||
image: reacherhq/commercial-license-trial:v0.11.0 | ||
container_name: test | ||
ports: | ||
- "8080:8080" | ||
environment: | ||
RCH__BACKEND_NAME: backend4-do | ||
RUST_LOG: reacher=info | ||
# Default proxy | ||
RCH__PROXY__HOST: my.default.proxy.com | ||
RCH__PROXY__PORT: 1081 | ||
RCH__PROXY__USERNAME: user0 | ||
RCH__PROXY__PASSWORD: pass0 | ||
RCH__HELLO_NAME: my.default.proxy.com | ||
RCH__FROM_EMAIL: hello@my.default.proxy.com | ||
# Proxy 1 | ||
RCH__OVERRIDES__PROXIES__PROXY1__HOST: 11.22.33.44 | ||
RCH__OVERRIDES__PROXIES__PROXY1__PORT: 1081 | ||
RCH__OVERRIDES__PROXIES__PROXY1__USERNAME: user1 | ||
RCH__OVERRIDES__PROXIES__PROXY1__PASSWORD: pass1 | ||
# Proxy 2 | ||
RCH__OVERRIDES__PROXIES__PROXY2__HOST: 55.66.77.88 | ||
RCH__OVERRIDES__PROXIES__PROXY2__PORT: 1081 | ||
RCH__OVERRIDES__PROXIES__PROXY2__USERNAME: user2 | ||
RCH__OVERRIDES__PROXIES__PROXY2__PASSWORD: pass2 | ||
# Route Google to Proxy 1 | ||
RCH__OVERRIDES__GMAIL__TYPE: smtp | ||
RCH__OVERRIDES__GMAIL__PROXY: proxy1 | ||
# Route Proofpoint to Proxy 1 | ||
RCH__OVERRIDES__PROOFPOINT__TYPE: smtp | ||
RCH__OVERRIDES__PROOFPOINT__PROXY: proxy1 | ||
# Route Hotmail B2B to Proxy 2 | ||
RCH__OVERRIDES__HOTMAILB2B__TYPE: smtp | ||
RCH__OVERRIDES__HOTMAILB2B__PROXY: proxy2 | ||
RCH__OVERRIDES__HOTMAILB2B__HELLO_NAME: my.proxy2.com # Optionally override the HELO/EHLO name | ||
RCH__OVERRIDES__HOTMAILB2B__FROM_EMAIL: hello@my.proxy2.com # Optionally override the MAIL FROM email. | ||
# Worker config | ||
RCH__WORKER__ENABLE: false | ||
restart: always | ||
``` | ||