2009-07-06 5 views
5

प्रलेखन निर्दिष्ट करता है कि इनलाइन अटैचमेंट कैसे जोड़ना है, लेकिन HTML भाग से संदर्भित करने का सही तरीका क्या है? क्या यह अन्य पुस्तकालयों में स्वचालित रूप से छवियों को शामिल करना संभव है?ज़ेंड फ्रेमवर्क का उपयोग करके इनलाइन छवियों के साथ एक ईमेल कैसे भेजें?

शायद किसी ने एक छोटा स्निपेट लिखा है और साझा करने के लिए तैयार है?

उत्तर

5

यही एक छोटी सी बात है, आप किसी के लिए भाग्यशाली Zend_Mail subclassed है नहीं है (Demo_Zend_Mail_InlineImages) ऐसा करने के लिए, यहाँ देखें:

http://davidnussio.wordpress.com/2008/09/21/inline-images-into-html-email-with-zend-framework/

+1

यहाँ एक और उदाहरण: https://gist.github.com/3415630 (उपरोक्त लिंक केवल स्थानीय फ़ाइल के लिए है: /// छवियां) –

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; 
} 
संबंधित मुद्दे