PHP imap通过代理

时间:2017-12-19 10:56:35

标签: php proxy imap

在php上通过代理工作imap有什么解决方案吗?如果我可以使用fsockopen并通过代理使用imap,那将会很棒。如何通过代理连接到imap?如何登录,发送命令?我看了所有的网络,没有找到任何解决方案。这个主题确实缺乏足够的信息。非常感谢任何可以提供帮助的人!

1 个答案:

答案 0 :(得分:1)

$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 => 'postbox@server.com',
    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 => 'postbox@server.com',
    CURLOPT_PASSWORD => 'password',
    CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5,
    CURLOPT_PROXY => "proxy-ip-addr:proxy-port"
]);

$content = curl_exec( $ch );
curl_close($ch);