如何使用Mailgun发送带有附件的批量/批量电子邮件?

时间:2018-12-10 07:09:23

标签: php laravel email email-attachments mailgun

我想发送带有附件的批量电子邮件。我可以通过将相同的文件附加到所有电子邮件中来发送批处理电子邮件。但是我需要通过在收件人变量中添加文件路径,将不同的文件附加到不同的电子邮件中。我在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 :(得分:1)

根据与Mailgun支持团队的对话,目前Mailgun无法为每个收件人分配特定的附件。可以尝试的一件事是在服务器上提供文件并为用户分配URL以从中检索文件(仅在文件不是机密文件并永久存储在服务器上的情况下才建议这样做。)

答案 1 :(得分:0)

来自doc

  

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

OR

  

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

OR(内联):

  

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