2009-07-06 2 views
5

문서에 인서트 첨부 파일을 추가하는 방법이 명시되어 있지만 html 부분에서 참조하는 올바른 방법은 무엇입니까? 이미지를 다른 라이브러리에있는 그대로 자동으로 포함시킬 수 있습니까?젠드 프레임 워크를 사용하여 인라인 이미지가 포함 된 이메일을 보내는 방법은 무엇입니까?

어쩌면 누군가가 약간의 스 니펫을 작성했으며 공유 할 의향이 있습니까?

정확히 Zend_Mail를 서브 클래스했다 당신이 누군가를 위해 운이 사소한 일이, 아니다

답변

2

내가 메일 클래스 래퍼를 쓰기

private function _processHtmlBody($I_html, $I_mailer, $I_data) { 

$html = $I_html; 
$mail = $I_mailer; 

$xmlBody = new DomDocument(); 
$xmlBody->loadHTML($html); 

$imgs = $xmlBody->getElementsByTagName('img'); 
$I_data['atts'] = array(); 

$imgCount = 0; 
foreach ($imgs as $img) { 
    $imgCount++; 
    $imgUrlRel = $img->getAttribute('src'); 

    $imgId = sha1(time() . $imgCount . $imgUrlRel); 
    $html = str_replace($imgUrlRel, 'cid:' . $imgId, $html); 

    $imgUrlFull = 'http://' . $_SERVER['HTTP_HOST'] . $imgUrlRel; 

    $imgBinary = file_get_contents($imgUrlFull); 

    $imgPart = $mail->createAttachment($imgBinary); 

    $imgPart->filename = 'image' . $imgCount . '.jpg'; 
    $imgPart->id = $imgId; 

    $I_data['atts'][] = $imgPart; 
    } 
    $mail->setBodyHtml($html); 

    return $html; 
}