2016-08-04 41 views
5

Próbuję przekazać wiele obrazów za pomocą wbudowanego parametru API Mailgun. Nie mam problemu z tylko jednym obrazem, ale gdy próbuję z wieloma obrazami - jak w poniższym kodzie - tylko ostatni obraz w tablicy jest wyświetlany w wiadomości e-mail.Wielokrotne wstawianie interfejsu API Mailgun API Partia

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

Powyższy kod działa tak, jakby ostatni element w tablicy był jedynym elementem.

Dokumentacja do wysyłania obrazów w linii z pistoletem pocztowym znajduje się pod numerem here i jest powiedziane here, że "Możesz umieścić wiele wartości śródliniowych", co oznacza, że ​​zdecydowanie robię coś nie tak.

+0

Używasz oficjalnego pakietu SDK do obsługi poczty, prawda? – Will

+0

@ user866762, tak jestem – jglemne

Odpowiedz

1

To był właściwie niedawno wprowadzony błąd. Nowe żądanie ściągnięcia zostało przesłane do oficjalnego pakietu Mailgun PHP SDK, aby uzyskać więcej informacji, patrz: here.

więc odpowiedzieć na pytanie: kod działa poprawnie, gdy tylko SDK jest aktualizowany zgodnie z powyższym wniosek przeciwsobnym. Na razie zredagowałem lokalnie kopię mailgun-php i działało dobrze. Wielkie dzięki dla Travisa Swientka na Mailgunie za szybką reakcję.

+0

Awesome! Dobrze idzie. –

2

Spróbuj raz:

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

Zasadniczo owijania każdą ścieżkę obrazu w tablicy.

Również to, co jest zawartość $template?

+0

kiedy to zrobić dostaję następujący komunikat o błędzie: "ErrorException w RestClient.php linii 259: Undefined index: remotename". Zaktualizowałem też moje pytanie, aby zobaczyć, co jest w szablonie $. Zasadniczo jest to po prostu mój kod html jako ciąg znaków. – jglemne

+1

Hmm, tak, to jest trudne, bez przykładu wielu obrazów w dokumentach. Być może będziesz musiał się z nimi skontaktować. Sprawdź [ten post] (http://stackoverflow.com/a/15302750/1133306). Ktoś, kto mówi, że pracuje dla Mailgun, zostawił odpowiedź (chociaż dla Pythona jestem pewien, że ta sama zasada obowiązuje) - może on może pomóc? –

+0

Skontaktowałem się z nim w sprawie mojego pytania, sprawię, że ten post będzie aktualizowany, jeśli otrzymam jakąkolwiek odpowiedź od zewnętrznego stackoverflow. Dzięki za pomoc! – jglemne