Proxy Support¶
SOCKS Proxies¶
You can use the python-socks library to connect to a SOCKS proxy.
Create a socket using the proxy.connect
method, and pass it as the sock
argument to the send()
coroutine or SMTP
class.
import ssl
import asyncio
import aiosmtplib
from python_socks.async_.asyncio import Proxy
hello_message = """To: somebody@example.com
From: root@localhost
Subject: Hello World!
Sent via aiosmtplib
"""
async def send_via_proxy(message):
proxy = Proxy.from_url('socks5://user:password@127.0.0.1:1080')
# `proxy.connect` returns a socket in non-blocking mode
sock = await proxy.connect(dest_host='example.com', dest_port=443)
# Use the socket with aiosmtplib
await aiosmtplib.send(
message,
sender="root@localhost",
recipients=["somebody@example.com"],
sock=sock,
)
asyncio.run(send_via_proxy(hello_message))