اضبط نطاق الإرسال أولًا
اضبط SPF وDKIM وDMARC للنطاق وسخّنه تدريجيًا. البروكسي ينقل الاتصال؛ لا يصلح نطاقًا باردًا ولا قائمة لم توافق قط.
معظم خدمات البروكسي تغلق المنفذ 25، فيموت برنامج الإرسال عند الاتصال. تبقي Advanced.name المنافذ 25 و465 و587 مفتوحة في كل باقة غير محدودة، وتعطي حتى 50,000 عنوان IPv4 على رابط واحد مصرّح به بعنوان IP لخادمك. السمعة تقوم على نطاق الإرسال الخاص بك؛ والبروكسي ينقل اتصالًا نظيفًا.
يتوقف التسليم على سمعة العنوان المرسِل. المجموعة الكبيرة توزّع هذه السمعة في طبقات رقيقة.
مخرج عبر المنفذ 25 أو منفذ TLS
المنافذ 25 و465 و587 مفتوحة في الباقات غير المحدودة الـ13، وSOCKS5 وHTTP على منفذ واحد
عنوان جديد لكل دفعة
في الباقة رقم 5 هناك 40,000 IP وفي رقم 6 هناك 50,000؛ ويتناوب نحو ثلثها يوميًا
وصول دون اسم مستخدم وكلمة مرور
صرّح بعنوان IP لخادم الإرسال في لوحة التحكم؛ العنوان هو المفتاح
خيوط لجلسات SMTP متوازية
3,000 خيط في الباقة رقم 5، و5,000 في رقم 6
كلما كبرت المجموعة قلّت الرسائل لكل عنوان. للإرسال اليومي خذ رقم 5 أو رقم 6 في المزيج العالمي.
اضبط SPF وDKIM وDMARC للنطاق وسخّنه تدريجيًا. البروكسي ينقل الاتصال؛ لا يصلح نطاقًا باردًا ولا قائمة لم توافق قط.
أضف عنوان IP للمرسِل في لوحة التحكم، ثم وجّه عميل SMTP إلى قائمة ip:port عبر SOCKS5 أو HTTP.
شغّل سكربت فحص الوصول أدناه أو Socks List Processor كي لا يبقى في القائمة إلا البروكسي الذي يصل إلى خادم SMTP عبر 25 أو 465 أو 587.
الصق قائمة البروكسي وخادم البريد. يفتح السكربت المنافذ 25 و465 و587 عبر كل بروكسي ويقرأ تحية الخادم، فلا يبقى لديك إلا العناوين التي تصل إليه. لا يرسل أي شيء. تعمل القائمة نفسها أيضًا في Socks List Processor.
#!/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()
يقوم التسليم على نطاق الإرسال لا على البروكسي. اضبط SPF وDKIM وDMARC لنطاقك، وسخّن المرسِل تدريجيًا، ولا ترسل إلا إلى قوائم وافقت. البروكسي ينقل الاتصال؛ لا يصلح نطاقًا باردًا.
استخدم الفاحص أعلاه لتُبقي فقط البروكسي الذي يصل فعلًا إلى خادم SMTP عبر المنافذ 25 أو 465 أو 587: كثير من الشبكات تحجب 25، وشبكتنا تبقيه مفتوحًا.
معظم عملاء SMTP وسكربتات البريد المعاملاتي تقبل بروكسي SOCKS5 أو HTTP لكل اتصال: ضع ip:port في حقل البروكسي، واختر SOCKS5، وصرّح بعنوان IP لخادمك في لوحة التحكم حتى لا تحتاج إلى تسجيل دخول.
تحقق من القائمة أولًا بسكربت الوصول أو Socks List Processor حتى لا تعطّل العناوين الميتة الإرسال.
حملات SMTP المشروعة تمر عبر الباقات غير المحدودة فقط: المنافذ 25 و465 و587 مفتوحة هناك.
حملات يوميةالخيار الأنسب
كل عنوان يحمل رسائل أقل، والحركة لا تُحتسب مهما كان الحجم. المنافذ 25 و465 و587 مفتوحة.
$1190 شهريًاأو $5.00 للساعة
أحجام كبيرة
أكبر مجمّع. للحملات التي تشغّل آلاف جلسات SMTP بالتوازي.
$1390 شهريًاأو $5.80 للساعة
Resi Core وResi Prime لا تناسبان المراسلات: المنفذ 25 مغلق فيهما، والقواعد تحظر البريد العشوائي.
اختر الباقة، وخذ ساعة التجربة المجانية، وتحقق من القائمة وابدأ.