首页 > 解决方案 > 如何使用 Php 包装器为 Mailjet 指定代理?

问题描述

在我的新服务器上,我必须使用代理对其他服务进行不同的 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
];

它可以工作,但我宁愿不必编辑此文件并按我应该的方式传递变量。

标签: phpmailjet

解决方案


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


推荐阅读