Как отправить пакетные / массовые электронные письма с вложениями с помощью mailgun? - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу отправить пакетное письмо с приложением.Я могу отправить пакетные электронные письма, прикрепив один и тот же файл ко всем электронным письмам.Но мне нужно прикреплять разные файлы к разным электронным письмам, добавляя путь к файлу в переменных получателя.Я не вижу ничего связанного в официальной документации mailgun.

Вот мой код:

 # Instantiate the client.
    $mgClient = new Mailgun('key-****');
    $domain = "foo.bar.com";

    # Make the call to the client.
    $result = $mgClient->sendMessage($domain, array(
        'from'    => 'gido@foo.baar.com',
        'to'      => array('user1@gmail.com', 'user2@gmail.com'),
        'subject' => 'Hi %recipient.first%',
        'text'    => 'Hey there, Just Testing',
        'recipient-variables' => '{"user1@gmail.com": {"first":"User1", "id":1, "file" : "/path/to/file1"},
                                   "user2@gmail.com": {"first":"User2", "id": 2, "file" : "/path/to/file2"}}'
    ), array(
        'attachment' => array('%recipient.file%')
    ));    

Приведенный выше код не работает.массив вложений не может использовать переменную получателя.Замена %recipient.image% на /path/to/file работает нормально.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Согласно разговору со службой поддержки Mailgun, в настоящее время у Mailgun нет способа назначить конкретное вложение каждому получателю.Одна вещь, которую можно попробовать, - это обслуживание файлов на сервере и назначение пользователям URL-адреса для извлечения файла (рекомендуется только в том случае, если файлы не являются конфиденциальными и постоянно хранятся на сервере.).

0 голосов
/ 10 декабря 2018

Из doc :

'attachment' => [['fileContent' => $ binaryFile, 'filename' => 'test.jpg']]

ИЛИ

'attachment' => [['filePath' => '/ tmp / foo.jpg', 'filename' => 'test.jpg']]

ИЛИ (встроенный):

'встроенный' => [['filePath' => '/ tmp / foo.jpg', 'filename' =>'test.jpg']]

...