【发布时间】:2019-12-01 16:04:16
【问题描述】:
当发送一批新的电子邮件地址订阅我的邮件列表时,我收到了一个致命错误。
我从 Mailgun 的 API 文档https://documentation.mailgun.com/en/latest/api-mailinglists.html#examples 的“添加多个邮件列表成员(每次调用限制 1,000 个)”下的示例中借用了代码 我的数组看起来像示例。
我的数组:
array:2 [▼
"members" => array:1 [▼
0 => "[{"name":"Someone","address":"sub1@example.com","vars":"{\"subscriber_id\":33}"},{"name":"Ellem","address":"sub2@example.com","vars":"{\"subscriber_id\":34}"},{"name":"Enno","address":"sub3@example.com","vars":"{\"subscriber_id\":35}"},{"name":"Nick","address":"sub4@example.com","vars":"{\"subscriber_id\":36}"},{"name":"Carl","address":"sub5@example.com","vars":"{\"subscriber_id\":37}"},{"name":"Tammy","address":"sub6@example.com","vars":"{\"subscriber_id\":38}"},{"name":"Janis","address":"sub7@example.com","vars":"{\"subscriber_id\":39}"}]"
]
"upsert" => true
]
以及我正在拨打的电话:
$mgClient = new Mailgun($MAILGUN_SECRET);
$result = $mgClient->post("lists/$listAddress/members.json", $myarray);
我收到以下错误:
Stream::create() 的第一个参数必须是字符串、资源或 StreamInterface。 {"userId":1,"email":"sub1@example.com","exception":"[object] (InvalidArgumentException(code: 0): Stream::create() 的第一个参数必须是字符串,资源或 StreamInterface. at /home/SECRET.cloudwaysapps.com/SECRET/public_html/vendor/nyholm/psr7/src/Stream.php:87)
这是堆栈跟踪中似乎相关的部分:
/home/SECRET.cloudwaysapps.com/SECRET/public_html/vendor/nyholm/psr7/src/Factory/HttplugFactory.php(29): Nyholm\Psr7\Stream::create(true)
#1/home/SECRET.cloudwaysapps.com/SECRET/public_html/vendor/php-http/multipart-stream-builder/src/MultipartStreamBuilder.php(61): Nyholm\Psr7\Factory\HttplugFactory->createStream(true)
#2/home/SECRET.cloudwaysapps.com/SECRET/public_html/vendor/mailgun/mailgun-php/src/Mailgun/Connection/RestClient.php(98): Http\Message\MultipartStream\MultipartStreamBuilder->addResource('upsert', 真的,数组)
#3/home/SECRET.cloudwaysapps.com/SECRET/public_html/vendor/mailgun/mailgun-php/src/Mailgun/Connection/RestClient.php(179): Mailgun\Connection\RestClient->send('POST', 'lists/devtest@n...', 数组,数组)
#4/home/SECRET.cloudwaysapps.com/SECRET/public_html/vendor/mailgun/mailgun-php/src/Mailgun/Mailgun.php(208): Mailgun\Connection\RestClient->post('lists/devtest@n...', Array, 数组)
#5/home/SECRET.cloudwaysapps.com/SECRET/public_html/app/Http/Controllers/SubscribersController.php(591): Mailgun\Mailgun->post('lists/devtest@n...', Array)
#6[内部函数]: App\Http\Controllers\SubscribersController->processUpload(Object(Illuminate\Http\Request))
如果我在哪里出错,我将不胜感激。我应该创建并附加 members.json 文件吗?
【问题讨论】:
-
能否请您添加您为发送这些电子邮件而编写的所有代码?
-
我的发送代码效果很好。我在通过 Mailgun 发送时没有遇到问题。问题在于将成员批量添加到邮件列表(我正在上传 CSV)。