有没有办法通过 php 上的代理工作 imap ?如果我可以使用 fsockopen 并通过代理使用 imap,那就太好了。如何通过代理连接到 imap?如何登录、发送命令?我查看了所有网络并没有找到任何解决方案。对于这个主题确实缺乏足够的信息。非常感谢任何可以提供帮助的人!
最佳答案
$ch = curl_init("imaps://imap.server.com:993/INBOX;UID=1");
curl_setopt_array($ch,[
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_USERNAME => '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3b4b54484f5954437b485e494d5e4915585456" rel="noreferrer noopener nofollow">[email protected]</a>',
CURLOPT_PASSWORD => 'password',
CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5,
CURLOPT_PROXY => "proxy-ip-addr:proxy-port"
]);
$content = curl_exec( $ch );
curl_close($ch);
echo $content;
这是如何从收件箱获取消息 #1 的示例。 可以使用 CURLOPT_CUSTOMREQUEST 选项发送非 GET IMAP 命令。 例如,删除消息:
$ch = curl_init("imaps://imap.server.com:993/INBOX;UID=1");
curl_setopt_array($ch,[
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_USERNAME => '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9eeef1edeafcf1e6deedfbece8fbecb0fdf1f3" rel="noreferrer noopener nofollow">[email protected]</a>',
CURLOPT_PASSWORD => 'password',
CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5,
CURLOPT_PROXY => "proxy-ip-addr:proxy-port"
]);
$content = curl_exec( $ch );
curl_close($ch);
关于PHP imap 通过代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47885370/