通过 SOCKS 为 IMAPS 配置 PHP cURL
在链接的 libcurl 支持 IMAP 的 PHP cURL 句柄上设置 IMAPS 路由,并分别使用邮件与代理账户。
$handle = curl_init('imaps://mail.example.com/INBOX/;UID=1');
curl_setopt_array($handle, [
CURLOPT_PROXY => 'socks5h://203.0.113.10:1080',
CURLOPT_USERNAME => getenv('MAIL_USER'),
CURLOPT_PASSWORD => getenv('MAIL_PASSWORD'),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 20,
]);这会配置现有应用程序的邮件传输;PHP 的 cURL 运行时必须链接到支持 IMAP 的 libcurl。仅凭其存在并不能证明所有已构建的协议。请替换端点与邮箱 UID。对于允许公共中间人、可公开访问的邮件服务器,SOCKS5 代理列表为所示的免凭据代理 URL 提供候选;在保留邮件账户与 TLS 设置的同时,确认对实际邮件主机和端口的访问。
CURLOPT_USERNAME/CURLOPT_PASSWORD 向邮件服务器进行身份验证。需要时,SOCKS 账户使用单独的受支持代理凭据选项。PHP IMAP 扩展是另一个客户端,不受这些设置配置。
为 IMAPS 目标保持启用证书与主机名验证。禁用两者并不是路由的前提条件。
在应用程序的传输/结果处理过程中,找出失败的阶段:SOCKS 协商、邮件 TLS、IMAP 登录或邮箱选择。可达的代理并不能表明 UID 1 存在。