Skip to content

Setting Up SMTP IMAP Proxy Service

Notice

If you are using resend, you can directly use resend's SMTP service without needing this service

Why Do You Need SMTP IMAP Proxy Service

SMTP and IMAP have a wider range of application scenarios

How to Set Up SMTP IMAP Proxy Service

Local Run

bash
cd smtp_proxy_server/
# Copy configuration file and modify it
# Your worker address, proxy_url=https://temp-email-api.xxx.xxx
# Your SMTP service port, port=8025
cp .env.example .env
python3 -m venv venv
./venv/bin/python3 -m pip install -r requirements.txt
./venv/bin/python3 main.py

Docker Run

bash
cd smtp_proxy_server/
docker-compose up -d

Modify the environment variables in docker-compose.yaml, note to choose the appropriate tag

proxy_url is the URL address of the worker

yaml
services:
  smtp_proxy_server:
    image: ghcr.io/dreamhunter2333/cloudflare_temp_email/smtp_proxy_server:latest
    # build:
    #   context: .
    #   dockerfile: dockerfile
    container_name: "smtp_proxy_server"
    ports:
      - "8025:8025"
      - "11143:11143"
    environment:
      - proxy_url=https://temp-email-api.xxx.xxx
      - port=8025
      - imap_port=11143

Environment Variables

VariableDefaultDescription
proxy_urlhttp://localhost:8787Worker backend URL
port8025SMTP port
imap_port11143IMAP port
smtp_tls_certemptySMTP TLS certificate file path (PEM), enables STARTTLS when configured
smtp_tls_keyemptySMTP TLS private key file path (PEM)
imap_tls_certemptyIMAP TLS certificate file path (PEM), enables STARTTLS when configured
imap_tls_keyemptyIMAP TLS private key file path (PEM)
imap_cache_size500Max cached messages per mailbox
imap_http_timeout30.0Backend HTTP request timeout (seconds)

Enabling STARTTLS

Configure the TLS certificate environment variables for SMTP and/or IMAP to enable STARTTLS support. SMTP and IMAP can share the same certificate.

bash
# .env example
smtp_tls_cert=/path/to/cert.pem
smtp_tls_key=/path/to/key.pem
imap_tls_cert=/path/to/cert.pem
imap_tls_key=/path/to/key.pem

In Docker Compose:

yaml
environment:
  - smtp_tls_cert=/certs/cert.pem
  - smtp_tls_key=/certs/key.pem
  - imap_tls_cert=/certs/cert.pem
  - imap_tls_key=/certs/key.pem
volumes:
  - ./certs:/certs:ro

IMAP Login Methods

Two login methods are supported:

MethodUsernamePasswordDescription
JWT CredentialEmail addressJWT tokenAddress credential from frontend, direct authentication
Address+PasswordEmail addressAddress passwordVerified via backend /api/address_login

The system automatically detects the password format: a three-segment string starting with eyJ is treated as a JWT; otherwise it is treated as a password and verified via the backend.

Using Thunderbird to Login

Download Thunderbird

For password, enter the email address credential or email address password

imap

Based on MIT license