2016-08-04 42 views
5

Ich versuche, mehrere Bilder über Mailgun inline API-Parameter zu übergeben. Ich habe kein Problem mit nur einem Bild, aber wenn ich mit mehreren Bildern versuche - wie im folgenden Code - wird nur das letzte Bild im Array in der E-Mail angezeigt.Inline mehrere Bilder Mailgun API Batch

$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') 
)); 

Der obige Code funktioniert so, als wäre das letzte Element im Array das einzige Element.

Die Dokumentation zum Senden von Inline-Bildern mit Mailgun findet sich here und es heißt here, dass "Sie mehrere Inline-Werte posten können", was bedeutet, dass ich definitiv etwas falsch mache.

+0

Sie verwenden das offizielle Mailgun SDK, richtig? – Will

+0

@ user866762, ja ich bin – jglemne

Antwort

1

Dies war ein kürzlich eingeführter Fehler. Eine neue Pull-Anfrage wurde an das offizielle Mailgun PHP SDK gesendet, für weitere Informationen siehe here.

So, um die Frage zu beantworten: Der Code funktioniert gut, sobald das SDK gemäß oben genannten Pull-Anforderung aktualisiert wird. Für den Moment habe ich meine lokale Kopie von mailgun-php entsprechend bearbeitet und es hat gut funktioniert. Vielen Dank an Travis Swientek an Mailgun für die schnelle Antwort.

+0

Super! Gut gemacht. –

2

dies einmal Versuchen:

$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') 
))); 

Grundsätzlich jeden Bildpfad in einem Array gewickelt wird.

Auch was ist der Inhalt von $template?

+0

Wenn ich das tue bekomme ich folgende Fehlermeldung: "ErrorException in RestClient.php Zeile 259: Undefinierter Index: remoteName". Ich habe auch meine Frage aktualisiert, damit Sie sehen können, was in $ template ist. Grundsätzlich ist es nur mein HTML-Code als String. – jglemne

+1

Hmm, ja das ist eine schwierige Frage ohne ein Beispiel für mehrere Bilder in den Dokumenten. Sie müssen möglicherweise auf sie zugreifen. Schaut euch diesen Beitrag an (http://stackoverflow.com/a/15302750/1133306). Jemand, der sagt, dass sie für Mailgun arbeiten, hat eine Antwort hinterlassen (obwohl es für Python bestimmt ist, dass das gleiche Prinzip gilt) - vielleicht kann er helfen? –

+0

Ich kontaktierte ihn über meine Frage, werde diesen Beitrag auf dem Laufenden halten, wenn ich eine Antwort von außerhalb stackoverflow bekomme. Danke für Ihre Hilfe! – jglemne