首页 > 解决方案 > 使用 Mailgun sdk 时 Stream::create() 的第一个参数必须是字符串错误

问题描述

我正在使用 Mailgun php sdk 通过 Mailgun php sdk 发送批量邮件但是我收到以下错误:

InvalidArgumentException  : First argument to Stream::create() must be a string, resource or StreamInterface.

  at C:\xampp\htdocs\dtcburger.com\vendor\nyholm\psr7\src\Stream.php:87

  Exception trace:

  1   Nyholm\Psr7\Stream::create(Object(Illuminate\Support\Collection))
      C:\xampp\htdocs\dtcburger.com\vendor\nyholm\psr7\src\Factory\HttplugFactory.php:29

  2   Nyholm\Psr7\Factory\HttplugFactory::createStream(Object(Illuminate\Support\Collection))
      C:\xampp\htdocs\dtcburger.com\vendor\php-http\multipart-stream-builder\src\MultipartStreamBuilder.php:61

  Please use the argument -v to see more details.

这是我的代码:

$mailgun = Mailgun::create(env('MAILGUN_SECRET')); 


        $result = $mailgun->sendMessage(config('mail.mailgunDomain'), [
            'from' => config('mail.username'),
            'to' => $emails,
            'subject' => $mailData['subject'],
            'text' => 'Hi',
            'recipient-variables' => $json
        ]);

标签: phplaravel

解决方案


我收到了同样的错误,经过一些调试后,找不到内联图像。

因此,请检查您的案例中是否填写了所有参数:

var_dump(config('mail.mailgunDomain'), [
        'from' => config('mail.username'),
        'to' => $emails,
        'subject' => $mailData['subject'],
        'text' => 'Hi',
        'recipient-variables' => $json
    ]);exit;

推荐阅读