内联多个图像 Mailgun API 批处理

5
我正尝试通过Mailgun的inline API参数传递多个图片。如果只传一个图片,我没有问题,但是当我尝试传递多个图片时,就像下面的代码一样,只有数组中的最后一个图片会显示在邮件中。
$template = View::make('emails.template')->render();
$result = $mgClient->sendMessage($domain, array(
  'from'                =>  $sender,
  'to'                  =>  implode(',',$emailAddresses),
  'subject'             =>  '%recipient.subject%',
  'text'                =>  $messageText,
  'recipient-variables' =>  json_encode($credentials),
  'html'                =>  $template
), array(
  'inline'              =>  array(
    'path/to/image1.png',
    'path/to/image2.png',
    'path/to/image3.png',
    'path/to/image4.png')
));

上述代码似乎只处理数组中的最后一个元素。

Mailgun发送内联图像的文档在此处找到,并且在此处提到“您可以发布多个内联值”,这意味着我肯定做错了什么。


你正在使用官方的Mailgun SDK,对吗? - Will
@user866762,是的,我是。 - Joel
2个回答

2
这实际上是一个最近引入的错误。已经向官方Mailgun PHP SDK提交了一个新的拉取请求,更多信息请参见这里
因此,回答这个问题:只要根据上述拉取请求更新SDK,代码就能正常工作。目前我已相应地编辑了我的本地mailgun-php副本,并且它可以正常工作。非常感谢Mailgun的Travis Swientek快速响应。

太棒了!干得好。 - Jared Eitnier

2

试着这样做一次:

$result = $mgClient->sendMessage($domain, array(
  'from'                =>  $sender,
  'to'                  =>  implode(',',$emailAddresses),
  'subject'             =>  '%recipient.subject%',
  'text'                =>  $messageText,
  'recipient-variables' =>  json_encode($credentials),
  'html'                =>  $template
), array(
  'inline'              =>  array(
    array('path/to/image1.png'),
    array('path/to/image2.png'),
    array('path/to/image3.png'),
    array('path/to/image4.png')
)));

基本上就是将每个图像路径包装在一个数组中。

另外,$template的内容是什么?


当我这样做时,我会得到以下错误消息:“在RestClient.php的第259行中的ErrorException:未定义索引:remoteName”。我还更新了我的问题,以便您可以看到$template中的内容。基本上它只是我的HTML代码作为一个字符串。 - Joel
1
嗯,如果文档中没有多个图像的示例,这将是一个棘手的问题。你可能需要联系他们。查看此帖子。有人声称他们在Mailgun工作,并留下了答案(尽管它是针对Python的,但我相信相同的原则适用)-也许他可以帮忙? - Jared Eitnier
我联系了他关于我的问题,如果我从stackoverflow之外得到任何回复,我会更新这篇文章。感谢你的帮助! - Joel
很酷,我也很好奇解决方案是什么。 - Jared Eitnier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接