1

我正在使用 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'));

但是在我收到时事通讯时没有加载图像。带有上述脚本的文档位于:

根 --> /MailGun/

图片位于:

根 --> /images/newsletter/

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

文档在这里:

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

我做错了什么?

4

3 回答 3

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') 
于 2014-07-21T20:55:19.157 回答
1

要附加的图像需要作为第三个参数传递给 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 文档中也可以找到一个示例,在“发送内联图像”标题下 - https://documentation.mailgun.com/user_manual.html#sending-via-api

于 2015-11-06T00:39:34.093 回答
-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" />

为此,您必须注意两点:

  1. 在内联标记中添加图像的完整路径
  2. 在您的 HTML 代码中仅添加文件的图像名称。
于 2020-12-12T20:45:16.207 回答