Mailgun Inline图像,它是如何工作的?

时间:2014-02-24 14:04:23

标签: php inline mailgun

我正在使用mailgun,并希望将图像添加到我的简报中。 现在我这样做了:

$mg->sendMessage($domain, array('from'    => 'developer@mijnprojectgroep.eu', 
                                'to'      => 'developer@mijnprojectgroep.eu', 
                                'subject' => 'Developers Mail Test MijnProjectgroep batch #1', 
                                'text'    => 'Hallo %recipient_fname%,


                'html'    => '<html>
<img style="display:block;" class="img1" src="cid:header-clip.png" width="600" height="64" />
</html>',
array('inline' => '@.././images/newsletter/header-clip.png'),

'o:tracking-opens' => 'yes'));

但是在收到简报时没有加载图片。 上面脚本的文档位于:

Root - &gt; / MailGun /

图片位于:

Root - &gt; /图像/通讯/

还试过:@ .. / .. / images / newsletter / header-clip.png

文档在这里:

http://documentation.mailgun.com/user_manual.html?highlight=html#sending-via-api

我做错了什么?

3 个答案:

答案 0 :(得分:4)

你没有做错。实际上API文档中存在一个问题。

您需要在内嵌图像路径中使用数组而不是字符串路径。它将解决这个问题。您可以这样添加:

$mg->sendMessage($domain, array('from'    => 'developer@mijnprojectgroep.eu',
                                    'to'      => 'developer@mijnprojectgroep.eu', 
                                    'subject' => 'Developers Mail Test MijnProjectgroep batch #1',
                                    'text'    => 'Hallo %recipient_fname%,
                                    'html'    => '<html><img style="display:block;" class="img1" src="cid:header-clip.png" width="600" height="64" /></html>',
    array('inline' => array('@.././images/newsletter/header-clip.png') 
),
    'o:tracking-opens' => 'yes'));

请检查此行:

array('inline' => array('@.././images/newsletter/header-clip.png') 

答案 1 :(得分:1)

要附加的图像需要作为第3个参数传递给sendMessage方法:

    $mgClient->sendMessage("$domain",
              array('from'    => 'Mailgun Sandbox <postmaster@sandbox.mailgun.org>',
                    'to'      => 'mr awesome <mrawesome@web.com>',
                    'subject' => 'Hello Mr',
                    'html' => '<html><img style="display:block;" class="img1" src="cid:header-clip.png" width="600" height="64" /></html>'
              ),
              array (
                'inline' => array(dirname(__FILE__).'/images/newsletter/header-clip.png')
              )
      );

另请注意文件的文件路径:dirname(__FILE__)。您可能需要将其更改为适合。

Mailgun文档中的标题为&#34;发送内联图像&#34; - https://documentation.mailgun.com/user_manual.html#sending-via-api

答案 2 :(得分:-1)

为此,您只需输入以下详细信息即可:

$header = FCPATH."public_html/assets/img/newsletter_header.png";

$mg->messages()->send($domain, [
  'from'    => 'xxxxxxx@gmail.com',
  'to'      => 'yyyyy <yyyyyyyy@gmail.com>',
  'subject' => 'The PHP SDK is awesome!',
  'html'    =>  $html,
  'inline' => array(
    array('filePath' => $header)
  )
]);

在您的HTML代码中:

$imageName = "newsletter_header.png";
<img src="cid:'.$imageName.'" width="408" height="100" alt="Pedul" border="0"
class="em_w150" />

为此,您需要注意2点:

  1. 在嵌入式代码中添加图像的完整路径
  2. 在您的HTML代码中仅添加文件的图像名称。