我正在我的本地主机上使用 Mailgun 编写教程。发送给我一个错误

I am working on a tutorial with Mailgun in my localhost. Send gives me an error

正在尝试在教程中使用 Mailgun。 我收到此错误并且卡住了......

错误

Fatal error Uncaught exception: ‘Http\Discovery\Exception\NotFoundException’

Message: ‘No PSR-17 url factory found. Install a package from this list: https://packagist.org/providers/psr/http-factory-implementation

composer.json

{
    "require": {
        "twig/twig": "~2.0",
        "mailgun/mailgun-php": "^3.0",
        "php-http/guzzle6-adapter": "^2.0",
        "php-http/message": "^1.8"
    },
    "autoload": {
        "psr-4": {
             "App\": "App/"
        }
    }
}

呼叫邮件 Class

Mail::send('xxxx@gmail.com','Test','This is a test', '<h1>This is a test</h1>');

邮件Class

namespace App;
use App\Config;
use Mailgun\Mailgun;

/**
 * Mail
 *
 * PHP version 7.0
 */
class Mail
{

/**
 * Send a message
 *
 * @param string $to Recipient
 * @param string $subject Subject
 * @param string $text Text-only content of the message
 * @param string $html HTML content of the message
 *
 * @return mixed
 */
public static function send($to, $subject, $text, $html)
{
    //$myApi = "8376be5527cfdef0553e922311897911-bbbc8336-db54a219";
    $domain = "https://app.mailgun.com/app/sending/domains/sandboxa38feaf00c804083b97e97be976b62d5.mailgun.org";

    # First, instantiate the SDK with your API credentials
    $mg = Mailgun::create('8376be5527cfdef0553e922311897911-bbbc8336-db54a219');

    # Now, compose and send your message.
    # $mg->messages()->send($domain, $params);
    $mg->messages()->send($domain, [
        'from'    => 'Excited User <mailgun@$domain>',
        'to'      => $to,
        'subject' => $subject,
        'text'    => $text
    ]);
}

}

之后

composer require mailgun/mailgun-php kriswallsmith/buzz nyholm/psr7 Using version ^3.0 for mailgun/mailgun-php Using version ^1.0 for kriswallsmith/buzz Using version ^1.2 for nyholm/psr7 ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages.

Problem 1 - Conclusion: don't install kriswallsmith/buzz 1.0.1 - Conclusion: remove symfony/options-resolver v5.0.2 - Installation request for kriswallsmith/buzz ^1.0 -> satisfiable by kriswallsmith/buzz[1.0.0, 1.0.1]. - Conclusion: don't install symfony/options-resolver v5.0.2 - kriswallsmith/buzz 1.0.0 requires symfony/options-resolver ^3.4 || ^4.0 -> satisfiable by symfony/options-resolver[v3.4.0, v3.4.1, v3.4.10, v3.4.11, v3.4.12, v3.4.13, v3.4.14, v3.4.15, v3.4.16, v3.4.17, v3.4.18, v3.4.19, v3.4.2, v3.4.20, v3.4.21, v3.4.22, v3.4.23, v3.4.24, v3.4.25, v3.4.26, v3.4.27, v3.4.28, v3.4.29, v3.4.3, v3.4.30, v3.4.31, v3.4.32, v3.4.33, v3.4.34, v3.4.35, v3.4.36, v3.4.4, v3.4.5, v3.4.6, v3.4.7, v3.4.8, v3.4.9, v4.0.0, v4.0.1, v4.0.10, v4.0.11, v4.0.12, v4.0.13, v4.0.14, v4.0.15, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7, v4.0.8, v4.0.9, v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.2, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.2.0, v4.2.1, v4.2.10, v4.2.11, v4.2.12, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8, v4.2.9, v4.3.0, v4.3.1, v4.3.2, v4.3.3, v4.3.4, v4.3.5, v4.3.6, v4.3.7, v4.3.8, v4.3.9, v4.4.0, v4.4.1, v4.4.2]. - Can only install one of: symfony/options-resolver[v3.4.0, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.1, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.10, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.11, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.12, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.13, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.14, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.15, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.16, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.17, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.18, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.19, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.2, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.20, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.21, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.22, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.23, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.24, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.25, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.26, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.27, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.28, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.29, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.3, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.30, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.31, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.32, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.33, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.34, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.35, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.36, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.4, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.5, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.6, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.7, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.8, v5.0.2]. - Can only install one of: symfony/options-resolver[v3.4.9, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.0, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.1, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.10, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.11, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.12, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.13, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.14, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.15, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.2, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.3, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.4, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.5, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.6, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.7, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.8, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.0.9, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.0, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.1, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.10, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.11, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.12, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.2, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.3, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.4, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.5, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.6, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.7, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.8, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.1.9, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.0, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.1, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.10, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.11, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.12, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.2, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.3, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.4, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.5, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.6, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.7, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.8, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.2.9, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.0, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.1, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.2, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.3, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.4, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.5, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.6, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.7, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.8, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.3.9, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.4.0, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.4.1, v5.0.2]. - Can only install one of: symfony/options-resolver[v4.4.2, v5.0.2]. - Installation request for symfony/options-resolver (locked at v5.0.2) -> satisfiable by symfony/options-resolver[v5.0.2].

Installation failed, reverting ./composer.json to its original content.

来自 installation document

The Mailgun API Client is not hard coupled to Guzzle, Buzz or any other library that sends HTTP messages. Instead, it uses the PSR-18 client abstraction. This will give you the flexibility to choose what PSR-7 implementation and HTTP client you want to use.

在 composer 上试试这个命令:

composer require mailgun/mailgun-php kriswallsmith/buzz nyholm/psr7

更新 question.in 后,日志显示 symfony/options-resolver 已经安装了旧版本。你必须选择其中之一。 (v3.4.1 或 v5.0.2)

我想如果你更新它。它将被修复:

composer update symfony/options-resolver