Mailgun laravel 4.2将版本“v2”更改为“v3”

时间:2015-10-03 18:36:17

标签: laravel mailgun

我正在使用Laravel 4.2和Mailgun。

mailgun api的基本网址已更改,现在为https://api.mailgun.net/v3/.........

当我使用Laravel执行请求时,它看起来像:https://api.mailgun.net/v2/.........

我查看了处理该问题的Facade:

// vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php
/**
 * Set the domain being used by the transport.
 *
 * @param  string  $domain
 * @return void
 */
public function setDomain($domain)
{
    $this->url = 'https://api.mailgun.net/v2/'.$domain.'/messages.mime';

    return $this->domain = $domain;
}

版本是硬编码的...我怎样才能正确改变?

2 个答案:

答案 0 :(得分:0)

Laravel 4.2使用mailgun v2构建。你可以在代码中将v2更改为v3,它可能会起作用,因为mailgun的v3是向后兼容的。 (http://blog.mailgun.com/default-api-version-now-v3/)但这不是最好的解决方案。

您可以使用使用mailgun v3 api的https://github.com/Bogardo/Mailgun之类的外部依赖。

答案 1 :(得分:0)

我建议对带有问题的类的代码进行代码更改,并将其作为拉取请求提交回Laravel的Github。

我同意你的观点,它看起来完全硬编码,除了这样做之外无法改变,所以这似乎是你最好的选择。

要注意的一件事是:我不知道mailgun API,但是如果它从v2变为v3,这意味着对API进行了一些重大更改,所以不要以为你只能改变它将'2'编号为'3'并期望它起作用;您可能还需要更改进行相关API调用的代码。