如何使用 Php 包装器为 Mailjet 指定代理?

How can I specify a proxy for Mailjet with the Php wrapper?

在我的新服务器上,我必须使用代理来对其他服务进行不同的 API 调用。

我正在使用 Mailjet,并使用官方 PHP Wrapper 进行调用(没有作曲家:https://github.com/mailjet/mailjet-apiv3-php-no-composer)。

我尝试这样配置代理:

$mj = new \Mailjet\Client(
                APIKEY,
                APIKEY2,
                true,
                [
                    'version' => 'v3.1',
                    'connect_timeout' => 4,
                    'proxy' => [
                        'http' => someurl,
                        'https' => someurl
                    ]
                ]
            );

如您所见,我也在尝试编辑“CONNECT_TIMEOUT”变量。 (我也尝试将变量设置为大写,结果相同)

不幸的是,通过我所有的测试我可以观察到只有 versionurl 变量被考虑并按要求设置。任何其他变量,随机的或应该被处理的,都没有设置并保持它们的默认值。

我想我没有按照我应该的方式进行配置,也许这​​些选项应该在调用的其他地方,但即使是 Mailjet 支持也无法通知我...

与此同时,我从

编辑了/Mailjet/src/Mailjet/Client.php文件
 private $requestOptions = [
    self::TIMEOUT => 15,
    self::CONNECT_TIMEOUT => 2,
];

 private $requestOptions = [
    self::TIMEOUT => 15,
    self::CONNECT_TIMEOUT => 4,
    self::PROXY => someurl
];

它有效,但我更喜欢不必编辑此文件并按我应该的方式传递变量。

class 有一个名为 setConnectionTimeout 的 public 方法,您可以在您的客户端实例中使用它(例如 $mj->setConnectionTimeout(4)