Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 邮件正文中的邮件Mime图像未使用MailMime addHtml显示(…)_Php_Html Email_Email Attachments_Mime Mail - Fatal编程技术网

Php 邮件正文中的邮件Mime图像未使用MailMime addHtml显示(…)

Php 邮件正文中的邮件Mime图像未使用MailMime addHtml显示(…),php,html-email,email-attachments,mime-mail,Php,Html Email,Email Attachments,Mime Mail,邮递1.8.9 邮件1.2.0 php 5.4.12 project=从我的本地主机开发计算机(LAN)运行 您好,我正在尝试将图像添加到我使用MailMime发送的电子邮件中。图像从未加载。我将完成以下步骤: 在这里,除了图像名称和扩展名(即:noimage.jpg),我正在剥离图像中的所有内容。然后,我创建了一个非图像相关的链接,然后使用剥离图像名称和扩展名创建图像标记 $url = substr($baseImage, 36); $domainName = DomainNameUtil::

邮递1.8.9 邮件1.2.0 php 5.4.12 project=从我的本地主机开发计算机(LAN)运行

您好,我正在尝试将图像添加到我使用MailMime发送的电子邮件中。图像从未加载。我将完成以下步骤:

在这里,除了图像名称和扩展名(即:noimage.jpg),我正在剥离图像中的所有内容。然后,我创建了一个非图像相关的链接,然后使用剥离图像名称和扩展名创建图像标记

$url = substr($baseImage, 36);
$domainName = DomainNameUtil::getWebSiteDomainName();
$projectPath = DomainNameUtil::getPathToProject();
$productUrl = $domainName . $projectPath  . "/client/app/#/products/" . $product->id;
$productLink = "<a href='$productUrl'>$product->name</a>";
$string = "<img src='$url' /><br />";
在上面的示例中,我知道该图像名为noimage.jpeg,因此在上面的addHtmlImage中,我只是简单地说明了名称。我的印象是,addHtmlImage中使用的名称必须与html正文中image src标记中的图像名称相同

当我真的发送电子邮件时,我收到了电子邮件,我收到一些文本,说有一个图像,但我的电子邮件正文中的图像标签没有加载。 另外,在firebug下查看,它有一个附加到图像src的代理。它还将其引用为PROXYADDRESS#

有没有人在这方面有经验,可以帮助我理解为什么图像没有加载


作为参考,我看到有人在网上发布这个方法,并试图复制它们。在此之前,我甚至尝试将整个url放在图像src中,而不将图像添加到MIME中,但没有成功。

我在这里遇到了类似的问题

到目前为止,我得到了什么:这取决于phpversion(和安装的Mail_Mime)。 在PHP5.4.30下,Mail_Mime似乎“坏了” 如果我在PHP5.2.17下运行脚本,所有图像都会正确显示 如果我在PHP5.4.30下运行脚本,所有图像都不会正确显示

当我比较这两个源代码时,5.4.30下的Mail_Mime似乎在边界顺序和内容类型方面变得混乱: 内容类型:多部分/备选;在5.2.17中 内容类型:多部分/相关;在5.4.30中,在此处输入图像描述


指定上下文id(addHtmlImage()的最后一个参数)时,必须正确引用html消息中的图像:
。当然,用您自己的上下文id替换要显示的每个图像的上下文id

$mailConfig = MailConfigurationUtil::getMailConfigurationData();
$headers = array (
  'From' => $from,
  'To' => $to,
  'Subject' => $subject
);
$crlf = "\n";
$mime = new Mail_mime(array('eol' => $crlf));
$mime->setHTMLBody($body);
$headers = $mime->headers($headers);
$smtp = Mail::factory('smtp', array (
  'host' => $mailConfig->mailServer,
  'port' => $mailConfig->port,
  'auth' => true,
  'username' => $mailConfig->userName,
  'password' => $mailConfig->password
));

$productManager = new ProductManager();
$ordersManager = new OrdersManager();
$orderVirtualItem =  $ordersManager->getOrderVirtualItemByBoxId($boxId);
$product = $productManager->getProductById($orderVirtualItem->itemId);
$url = $product->baseImage;
$domain = DomainNameUtil::getWebSiteDomainName();
$path = DomainNameUtil::getPathToProject();
$r = substr($url, 5);
$finalUrl = $domain . $path . $r;
$mime->addHTMLImage(file_get_contents($finalUrl),'image/jpeg',basename("noimage"),false, "blackstone");
$body = $mime->get();
$mail = $smtp->send($to, $headers, $body);