我正在使用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”,虽然它会引发这样的错误..
这两个问题有什么解决方案吗?
答案 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 adapter
从guzzle
手动添加它,就像这样。如果您想使用ssl,可以将verify
设置为false
use Http\Adapter\Guzzle6\Client;
$httpClient = Client::createWithConfig([
'verify' => __DIR__ . '/../config/ca-cert.pem'
]);
$mailgun = new Mailgun(self::$apiKey, $httpClient);