2014-06-09 5 views
0

Mail_Mime 1.8.9 메일 1.2.0 PHP 내 로컬 호스트 dev에 컴퓨터 (LAN)에서 실행 5.4.12 프로젝트를 = 사용하여 표시되지.메일 마임 이미지 MailMime addHtml (...)

안녕하세요, 이메일에 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); 

을 보내고, 나는 단순히 이름을 언급 위의 addHtmlImage에 있도록 이미지가, noimage.jpeg라고 알고있다. addHtmlImage에 사용 된 이름이 html 본문의 이미지 src 태그에있는 이미지 이름과 동일한 이름이어야한다는 인상하에 있습니다.

이메일을 실제로 보내면 이메일이 전송되고 이미지가 있다는 텍스트가 표시되지만 이메일 본문의 이미지 태그가로드되지 않습니다. 또한 방화 광 아래에서 이미지 src에 프록시가 연결되어 있습니다. 또한 PROXYADDRESS 번호로 참조 http://noimage.jpg

enter image description here

누구나 이미지가로드되지 않는 이유 나를 이해하는 데 도움이 경험이?

참고로 누군가 온라인에서이 방법을 게시하고 복사 해 보았습니다. 이 전에는 이미지 src에 전체 URL을 넣고 이미지를 MIME에 추가하지 않았지만 작동하지 않았습니다.

답변

0

나는 여기에서 꽤 비슷한 문제를 가지고 있습니다.

나는 지금까지 무엇을 얻었 는가 : 그것은 phpversion (및 설치된 Mail_Mime)에 달려있다. Mail_Mime 내가 PHP 5.2.17 모든 이미지에서 내 스크립트를 실행 내가 PHP 5.4.30에서 내 스크립트를 실행하는 모든 이미지가 제대로

를 표시하지 않는 경우 제대로 을 표시하는 경우 PHP 5.4.30 에서 "깨진"것으로 보인다

두 소스 코드를 비교할 때 5.4.30 아래의 Mail_Mime이 경계와 Content-Type 순서가 복잡 해지는 것 같습니다. Content-Type : multipart/alternative; 5.2.17에서 콘텐츠 유형 : multipart/관련; 여기

email looks like this code comparison

0

상황에 ID를 지정 5.4.30enter 이미지 설명에 (addHtmlImage에 마지막 매개 변수를()) 당신은 제대로 HTML 메시지의 이미지를 참조해야합니다 : <img src="cid:[email protected]" />. 물론 각 이미지를 표시 할 컨텍스트 ID를 자신의 컨텍스트 ID로 바꾸십시오.