Mail_Mime 1.8.9 Mail 1.2.0 php 5.4.12 プロジェクト = 私のローカルホスト開発コンピューター (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 本文の画像 src タグの画像名と同じ名前でなければならないという印象を受けました。
実際にメールを送信すると、メールが届き、画像があるというテキストが表示されますが、メール本文の画像タグが読み込まれません。また、firebug の下で見ると、画像の src にプロキシが接続されています。また、PROXYADDRESS# http://noimage.jpgとして参照します。
画像が読み込まれない理由を理解するのに役立つ経験がある人はいますか?
参考までに、誰かがこの方法をオンラインで投稿しているのを見て、それらをコピーしてみました. この前に、URL全体を画像srcに入れ、画像をMIMEに追加しないことさえ試みましたが、うまくいきませんでした。