Log in Sign up
Email marketing

Proxies for email marketing with the SMTP ports left open

Most proxy services close port 25, so the mailer dies on connect. Advanced.name keeps 25, 465 and 587 open on every unlimited package and gives up to 50,000 IPv4 addresses on one link, authorised by your server IP. Reputation lives on your sending domain; the proxy carries a clean connection.

  • ports 25, 465, 587 open
  • up to 50,000 IPs
  • IP authorisation, no login
Mail sorting hall styled as a data center with glowing slots
Email marketing

What a mailer needs and what the package gives

Delivery depends on the reputation of the sending address. A large pool spreads that reputation thin.

What the task needsWhat the package gives

A route out through port 25 or a TLS port

25, 465 and 587 open on all 13 unlimited packages, SOCKS5 and HTTP on one port

A fresh address for each batch

Package #5 holds 40,000 IPs, #6 holds 50,000; about a third rotates daily

Access without a login and password

Authorise your sending server's IP in the dashboard; the address is the key

Threads for parallel SMTP sessions

3,000 threads on package #5, 5,000 on #6

Unlimited proxies

Pick the package for your daily volume

Bigger pools mean fewer letters per address. For daily sends take #5 or #6 in World MIX.

Region
Term
Authorized IPs
1 +10% per IP above the first
Recommended for this task
$0
  • Proxies in package
  • Threads
  • Authorized IPs1
  • ProtocolsHTTP / SOCKS5
All 13 packages in the price table

Three steps to the first send

Get the sending domain right first

Set SPF, DKIM and DMARC for the domain and warm it gradually. The proxy carries the connection; it does not fix a cold domain or a list that never opted in.

Authorise and load the list

Add the sender's IP in the dashboard, then point your SMTP client at the ip:port list over SOCKS5 or HTTP.

Check reachability before sending

Run the reachability script below or the Socks List Processor so only proxies that reach your SMTP host on 25, 465 or 587 stay in the list.

SMTP reachability checker (not a mailer)

Paste your proxy list and the mail host. The script opens ports 25, 465 and 587 through each proxy and reads the greeting, so you keep only the addresses that reach the server. It sends nothing. The same list also runs in Socks List Processor.

one ip:port per line, or a CSV export (';' separated)
the mail server you plan to relay through
ports to test on that host
proxy;port;banner is written here
Values come from the form; copy or download the ready file.
Show the script code
Python 3.8+ · email.py
#!/usr/bin/env python3
"""SMTP reachability checker for Advanced.name proxies.

A legitimate mail setup needs to know which proxies can actually reach an SMTP
server. This opens a SOCKS5 tunnel to the mail host on ports 25, 465 and 587
through each proxy and reads the greeting, so you keep only the addresses that
work. It does not send mail. Standard library only. Run: python3 smtp_reach.py
"""

# ================================ CONFIG ====================================
PROXY_LIST = "proxies.txt"   # one ip:port per line, or a CSV export (';' separated)
SMTP_HOST = "smtp.gmail.com"  # the mail server you plan to relay through
SMTP_PORTS = (587, 465, 25)   # ports to test on that host
THREADS = 100
TIMEOUT = 12
OUT_FILE = "smtp_ok.csv"     # proxy;port;banner is written here
# ============================================================================

import csv
import socket
import sys
import threading
from concurrent.futures import ThreadPoolExecutor, as_completed


def load_list(path):
    out = []
    with open(path, encoding="utf-8", errors="replace") as fh:
        for line in fh:
            line = line.strip()
            if not line or line.startswith("#"):
                continue
            if ";" in line:                       # CSV row: ip;port;...
                parts = line.split(";")
                if len(parts) >= 2 and parts[1].isdigit():
                    out.append(parts[0] + ":" + parts[1])
            elif ":" in line:
                out.append(line)
    return out


def socks5_connect(proxy, host, port):
    """Open host:port through a no-auth SOCKS5 proxy, return the connected socket."""
    ip, pport = proxy.rsplit(":", 1)
    sock = socket.create_connection((ip, int(pport)), TIMEOUT)
    sock.settimeout(TIMEOUT)
    sock.sendall(b"\x05\x01\x00")
    if sock.recv(2) != b"\x05\x00":
        raise ConnectionError("socks5 handshake")
    host_bytes = host.encode()
    sock.sendall(b"\x05\x01\x00\x03" + bytes([len(host_bytes)]) + host_bytes + port.to_bytes(2, "big"))
    reply = sock.recv(4)
    if len(reply) < 2 or reply[1] != 0:
        raise ConnectionError("socks5 connect rejected")
    sock.recv(256)                                # drain the bound-address tail
    return sock


def reachable(proxy):
    """Return (port, banner) for the first SMTP port that answers, or (0, reason)."""
    for port in SMTP_PORTS:
        try:
            sock = socks5_connect(proxy, SMTP_HOST, port)
        except OSError:
            continue
        try:
            if port == 465:                       # implicit TLS: no plaintext banner
                sock.close()
                return port, "connected (tls)"
            banner = sock.recv(256).decode("latin-1", "replace").strip()
            sock.close()
            if banner.startswith("220"):
                return port, banner[:80]
        except OSError:
            pass
    return 0, "no smtp port reachable"


def main():
    proxies = load_list(PROXY_LIST)
    if not proxies:
        sys.exit("List is empty.")
    print("host %s, ports %s, proxies %d" % (SMTP_HOST, SMTP_PORTS, len(proxies)))
    ok, lock = [], threading.Lock()

    def work(proxy):
        port, info = reachable(proxy)
        if port:
            with lock:
                ok.append((proxy, port, info))
        return proxy, port, info

    with ThreadPoolExecutor(max_workers=THREADS) as pool:
        for fut in as_completed([pool.submit(work, p) for p in proxies]):
            proxy, port, info = fut.result()
            print("%-22s %s" % (proxy, ("%d %s" % (port, info)) if port else info))

    with open(OUT_FILE, "w", encoding="utf-8", newline="") as out:
        writer = csv.writer(out, delimiter=";")
        writer.writerow(["proxy", "port", "banner"])
        writer.writerows(ok)
    print("reachable: %d of %d -> %s" % (len(ok), len(proxies), OUT_FILE))


if __name__ == "__main__":
    main()
Setup

Setting up mail through proxies, the right way

Before the proxy: sender reputation

Deliverability rests on the sending domain, not the proxy. Set SPF, DKIM and DMARC for your domain, warm the sender gradually and mail only lists that opted in. The proxy carries the connection; it does not fix a cold domain.

Use the checker above to keep only proxies that actually reach your SMTP host on ports 25, 465 or 587 — many networks block 25, ours keeps it open.

Pointing a mailer at the pool

Most SMTP clients and transactional scripts accept a SOCKS5 or HTTP proxy per connection: put ip:port in the proxy field, choose SOCKS5, and authorise your server IP in the dashboard so no login is needed.

Verify the list first with the reachability script or Socks List Processor so dead addresses never stall a send.

Four things that keep delivery up

  1. Warm up: start with small volumes per IP and grow them over days.
  2. Mail only lists that opted in and honour every unsubscribe; deliverability and the law both depend on it.
  3. Align SPF, DKIM and DMARC before you touch the proxy list; the address only carries the letter.
  4. Re-read the link every 10 minutes so a dead address never stalls a send.
FAQ

Questions about this task

Is port 25 really open?
Yes, on all unlimited packages, together with 465, 587 and the IMAP port 993. Legitimate mail works in any client that supports SOCKS5 or HTTP proxies. Resi Core and Resi Prime residential proxies keep port 25 closed and do not suit mailing.
Does a proxy improve deliverability?
Only indirectly. Delivery rests on the sending domain's SPF, DKIM, DMARC and reputation; the proxy gives a clean, reachable connection, nothing more.
Which package for larger volumes?
World MIX #5 (40,000 IPs, 3,000 threads) or #6 (50,000 IPs, 5,000 threads): more addresses means fewer connections per IP.
Can the mailer take the list by URL?
Most can. The link returns ip:port lines; set the refresh interval to 10 minutes.
Can I send mail through Resi Core or Resi Prime?
Through Resi Core, yes: a mail client signs in to Gmail or Outlook on ports 465 and 587 and sends the letter through their server, and reads and checks the mailbox over IMAP and POP3. Port 25 is closed on residential, so your own SMTP server or a mailer that delivers straight to MX will not connect. Resi Prime closes all mail ports. Spam is banned in any form, and opt-in mailings go through unlimited packages.
Plans for this task

Which package to take for email campaigns

Legitimate SMTP campaigns go only through unlimited packages: ports 25, 465 and 587 are open there.

Unlimited proxies

Daily campaignsBest fit

Package #5 · World MIX · 40,000 IP · 3,000 threads

Each address carries fewer letters, and traffic is not counted at any volume. Ports 25, 465 and 587 are open.

$1190 per monthor $5.00 per hour

Unlimited proxies

Large volumes

Package #6 · World MIX · 50,000 IP · 5,000 threads

The largest pool. For campaigns that run thousands of SMTP sessions in parallel.

$1390 per monthor $5.80 per hour

Resi Core and Resi Prime do not suit mailing: port 25 is closed on them, and the rules ban spam.

Send opt-in campaigns through open ports

Pick the package, take the free test hour, verify the list and start.

Pricing Grab a free hour