Sendgrid附件 - pdf php

时间:2016-09-09 03:52:58

标签: php pdf sendgrid

我使用sendgrid从我的应用程序发送邮件,一切正常,直到我尝试添加附件(在页面内生成的pdf并存储为变量)。

如果我使用标准的php邮件功能,pdf会发送,但是我想将它添加到我的sendgrid邮件中,我使用以下代码但是没有运气:

        $sendgrid = new SendGrid('SENDGRID_KEY');
        $email = new SendGrid\Email();
        $email
        ->addTo('example@mail.com')
        ->addBcc('example@mail.com')
        ->setFrom('example@mail.com')
        ->setSubject('Example')
        ->setFiles($pdfdoc)
        ->setHtml($example_html);

        $sendgrid->send($email);
        echo "you just sent a mail! <br>";

我已经尝试了 - > gt; setsetFiles()和 - &gt; setAttachment()但似乎都没有工作,我收到以下错误消息:

[09-Sep-2016 03:55:19 UTC] PHP致命错误:未捕获异常&#39; Guzzle \ Common \ Exception \ InvalidArgumentException&#39;消息&#39;无法打开%PDF-1.4 3 0 obj

有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

`#Solved with using web api v2 Curl version like this

$fileName = 'filename.pdf';
$image_data = file_get_contents('gs://my-bucket/filename.pdf');

#sending part

$params = array(
'api_user'  => $user,
'api_key'   => $pass,
'x-smtpapi' => json_encode($json_string),
'to'        => 'email@yourdomain.com',
'subject'   => 'your subject',
'html'      => 'testing body',
'text'      => 'testing body',
'from'      => 'yourmail@yourdomain.com',
'files['.$fileName.']' => $image_data
 );

$request =  $url.'api/mail.send.json';