如何强制imap_open和PHP编译器使用指定的替代网络接口或SOCKS代理?

如何强制imap_open和PHP编译器使用指定的替代网络接口或SOCKS代理?,php,proxy,smtp,imap,network-interface,Php,Proxy,Smtp,Imap,Network Interface,很长一段时间以来,我一直在使用我自己的电子邮件客户端,通过IMAP从我的Gmail帐户获取电子邮件,并通过SMTP发送电子邮件。我使用PHP的IMAP模块接收部件,使用库PHPMailer发送部件 在过去的几周里,谷歌开始不断骚扰我“用我的浏览器”登录我的Gmail帐户。我也是。我使用了书中的每一个“技巧”来解锁我的帐户,但最多只能停留几分钟,然后他们又再次阻止我。在这一点上,我花了这么多时间来解决这个问题,以至于我100%相信一定有人使用泄露的Gmail帐户从我使用的相同IP地址发送了大量垃圾

很长一段时间以来,我一直在使用我自己的电子邮件客户端,通过IMAP从我的Gmail帐户获取电子邮件,并通过SMTP发送电子邮件。我使用PHP的IMAP模块接收部件,使用库PHPMailer发送部件

在过去的几周里,谷歌开始不断骚扰我“用我的浏览器”登录我的Gmail帐户。我也是。我使用了书中的每一个“技巧”来解锁我的帐户,但最多只能停留几分钟,然后他们又再次阻止我。在这一点上,我花了这么多时间来解决这个问题,以至于我100%相信一定有人使用泄露的Gmail帐户从我使用的相同IP地址发送了大量垃圾邮件。(这是一个VPN。)

因此,我需要使imap_open()和PHPMailer使用指定的SOCKS代理,或者(更好)在我的计算机上使用指定的网络接口。例如,当使用cURL发出HTTPS请求时,我可以指定一个网络接口,使其绕过VPN连接(OpenVPN),而使用我的“真实”连接。然而,imap_open()和PHPMailer似乎都完全没有能力指定供它们使用的替代网络接口,也没有能力设置要使用的代理(SOCKS或任何其他类型)

因此,我目前无法让imap_open()和PHPMailer在我的机器上使用“默认路由”,这意味着它们都使用VPN IP地址与谷歌的服务器通信。这意味着它认为我是一个虐待机器人,尽管我只是一个人,只有一个Gmail帐户,拼命地想抓住我最后一扇通向世界的窗户

如果真的没有办法告诉这些东西通过不同的网络接口或代理连接,我能做什么

完全断开VPN连接显然不是一种选择

在过去,我花了大量的时间和精力试图弄明白这一点,但现在,能够使用电子邮件对我来说实际上至关重要。我发现搜索是没有希望的,没有人理解我在问别人时说的话。因此,我这次写这篇文章的方式不能被误解


更新:又过了一天,它似乎无法自我修复。我相信这会一直持续下去,直到我发现如何使用特定的网络接口…

如果您使用的是类似linux的平台,您可能可以使用LD_PRELOAD技巧,其中库将用透明使用SOCKS服务器的新版本替换系统套接字调用。一个快速的谷歌显示“tsocks”库,但可能还有其他选择。也许有类似的技巧可以覆盖绑定以使用特定的网络接口,或者你可以使用路由表(如果你有路由)来强制特定主机的特定路由。@Max这是在Windows上,我完全无法处理任何一个操作系统上令人困惑的“路由”。我不知道任何人怎么能理解这些东西。如果你使用的是一个类似linux的平台,你也许可以使用LD_PRELOAD技巧,其中一个库用透明使用SOCKS服务器的新版本替换系统套接字调用。一个快速的谷歌显示“tsocks”库,但可能还有其他选择。也许有类似的技巧可以覆盖绑定以使用特定的网络接口,或者你可以使用路由表(如果你有路由)来强制特定主机的特定路由。@Max这是在Windows上,我完全无法处理任何一个操作系统上令人困惑的“路由”。我不知道怎么有人能理解那些东西。