具有Yii2扩展名的Mailgun V3问题不存在端点

时间:2016-09-27 06:20:48

标签: php ssl yii2 mailgun

我正在使用https://github.com/boundstate/yii2-mailgun Mailgun的Yii2扩展,并在我的包装类上扩展它。

我配置如web.php中的文档所示,

'mailer' => [
            'class' => 'boundstate\mailgun\Mailer',
            'key' => 'key-85886fafb248373bd90a396',// valid key
            'domain' => 'sandbox5d98013abb1749fd94b68.mailgun.org',//valid domain
        ],

现在, 当我使用它时,

Yii::$app->mailer->compose()
    ->setFrom('valid-email-address')
    ->setTo('valid-email-address')
    ->setSubject("test mail from mailgun api")
    ->send();

首先,我的本地主机验证了SSL的问题。

GuzzleHttp \异常\ RequestException cURL错误60:SSL证书问题:无法获取本地颁发者证书 ↵ 引起:GuzzleHttp \ Ring \ Exception \ RingException

没有任何配置来设置SSL =>错误通过配置,因为我们可以使用sendgrid扩展。

此后我也面临这个错误,

Mailgun \连接\例外\ MissingEndpoint 您尝试访问的端点不存在。检查您的网址 在mailgun Api中,他们正在使用“api.mailgun.net”,虽然它会引发这样的错误..

这两个问题有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

也许您可以先在github #130#175中阅读此问题。

要解决您的问题,您可以在php.ini中手动添加此行(基于Comment on that issues

[curl] ; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. curl.cainfo = "C:\php\extras\cacert.pem"

或者您可以使用我的方式,通过Client adapterguzzle手动添加它,就像这样。如果您想使用ssl,可以将verify设置为false

use Http\Adapter\Guzzle6\Client;

 $httpClient = Client::createWithConfig([
  'verify' => __DIR__ . '/../config/ca-cert.pem'
]);

$mailgun = new Mailgun(self::$apiKey, $httpClient);