簡體   English   中英

使用MailMime addHtml(…)無法顯示電子郵件正文中的Mail Mime圖像

[英]Mail Mime image in email body not showing up using MailMime addHtml(…)

Mail_Mime 1.8.9 Mail 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 />";

我在這里發送消息

$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);

在上面的示例中,我知道該圖像稱為noimage.jpeg,因此在上面的addHtmlImage中,我只是簡單地聲明了名稱。 我的印象是,addHtmlImage中使用的名稱必須與html主體中的image src標記中的圖像名稱相同。

當我實際發送電子郵件時,我收到了電子郵件,並收到了一些文字,說有圖像,但是電子郵件正文中的圖像標簽未加載。 另外,在firebug下查看它時,它還有一個附加到映像src的代理。 它還將其稱為PROXYADDRESS# http://noimage.jpg

在此處輸入圖片說明

任何有經驗的人都可以幫助我理解為什么未加載圖像?

作為參考,我看到有人在線發布此方法並嘗試復制它們。 在此之前,我什至嘗試將整個url放在圖片src中,而不是將圖片添加到MIME中,並且它不起作用。

我在這里遇到了類似的問題。

到目前為止,我得到了什么:它取決於phpversion(和已安裝的Mail_Mime)。 Mail_Mime在php 5.4.30下似乎“損壞”如果我在php 5.2.17下運行我的腳本,所有圖像都正確顯示如果我在php 5.4.30下運行我的腳本,所有圖像都不能正確顯示

當我比較兩個源代碼時,似乎5.4.30下的Mail_Mime混亂了邊界順序和Content-Type:Content-Type:multipart / alternative; 在5.2.17中Content-Type:多部分/相關; 在5.4.30中輸入圖像描述

電子郵件看起來像這樣代碼比較

指定上下文ID(addHtmlImage()的最后一個參數)時,必須正確引用html消息中的圖像: <img src="cid:context-id@local" /> 當然,對於要顯示的每個圖像,請使用您自己的上下文ID替換上下文ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM