2009-10-14 7 views
5

में एम्बेडेड छवियों के साथ HTML ई-मेल जेनरेट करें कोई भी एम्बेडेड छवियों और वैकल्पिक टेक्स्ट भाग के साथ HTML ई-मेल उत्पन्न करने का एक अच्छा उदाहरण जानता है? मुझे HTML में कुछ सारणीबद्ध रिपोर्ट जेनरेट करने की आवश्यकता है और लोगो और अन्य छवियों को एम्बेड करना चाहते हैं।डेल्फी

मेरा मानना ​​है कि इंडी कुछ काम के साथ ऐसा कर सकता है, लेकिन मुझे उम्मीद थी कि कोई मुझे शुरुआती बिंदु के रूप में एक अच्छा उदाहरण बता सकता है। मैं इंडी के अलावा पुस्तकालयों का उपयोग करने के लिए खुला हूं और वाणिज्यिक समाधान प्रदान किए गए स्रोत उपलब्ध हैं। लागू करने के लिए गुणवत्ता और समय लागत से अधिक महत्वपूर्ण है। समाधान को मेल एक्सचेंजर को एसएमटीपी आधारित डिलीवरी का समर्थन करने की भी आवश्यकता है।

मेरी इच्छा सूची में अन्य आइटम HTML संदेश सामग्री उत्पन्न करने के लिए फास्ट रीपॉर्ट्स, TRichView या इसी तरह के टूल का लाभ उठाने में सक्षम होना है। दोनों के लिए एचटीएमएल आउटपुट फिल्टर उपलब्ध हैं, लेकिन मुझे कोई परीक्षण करने का अवसर नहीं मिला है। इस विषय पर किसी भी प्रतिक्रिया की सराहना की जाएगी।

अग्रिम धन्यवाद!

डेविड

उत्तर

9

पढ़ें इंडी की वेबसाइट पर निम्नलिखित लेख:

HTML Messages
New HTML Message Builder class

+0

इंडी मेससेजबिल्डर जाने का रास्ता प्रतीत होता है। उदाहरणों के आधार पर मुझे दिखाई देने वाला एकमात्र संभावित कोडिंग समस्या यह है कि फ़ाइलों को डिस्क से पढ़ा जा रहा है। डेटा और छवियों को डेटाबेस में रहने के बाद से मुझे स्ट्रीम का उपयोग करने की आवश्यकता है। मैं यह देखने के लिए स्रोत की जांच करूंगा कि छवियों को जोड़ने के अन्य तरीकों का समर्थन किया गया है और यदि आवश्यक नहीं है तो आवश्यक समायोजन करें। –

+0

TIdMessage, TIdText और TIdAttachmentMemory का उपयोग करके आप धाराओं का उपयोग करके संदेश और अनुलग्नक बना सकते हैं। – ajob

+0

TIdMessageBuilderHtml छवियों जैसे HTML से संबंधित अनुलग्नक डेटा के लिए TStream का उपयोग करने का समर्थन करता है। TIdMessageBuilderHtml.HtmlFiles प्रॉपर्टी ने फ़ाइल नामों और TStream डेटा के लिए Add() के संस्करणों को अधिभारित किया है। गैर-संबंधित डेटा संलग्न करना, हालांकि, वर्तमान में अभी तक टीस्ट्रीम का समर्थन नहीं करता है। –

0

हम इंडी के साथ इस साल पहले की कोशिश की और एम्बेडेड cid: इस तरह छवियों: https://forums.codegear.com/thread.jspa?threadID=17473

हम नहीं मिला यह स्थिर, हर बार एक और मेल पाठक कि barfed था (यदि हम यह मिल गया आउटलुक में काम करना, फिर थंडरबर्ड ने इसे स्वीकार नहीं किया, या आउटलुक एक्सप्रेस, या, आदि, आदि)।

अंत में हमने इसे AspNetEmail का उपयोग करके .NET के साथ किया और यह एक आकर्षण की तरह काम करता था।

--jeroen

+1

क्या आपने कभी इंडी द्वारा जेनरेट किए गए ईमेल की तुलना AspNetEmail द्वारा जेनरेट किए गए ईमेल की तुलना में की है, यह देखने के लिए कि उनके बीच क्या अंतर है? –

+0

साल पहले हमने किया था।लेकिन हमने प्रोजेक्ट प्रेशर के कारण नोट्स नहीं रखे। परियोजना दो साल तक रही, लेकिन अब मर चुकी है। तो आज, यह इंडी के साथ भी काम कर सकता है। –

+0

पर्याप्त मेला, धन्यवाद। –

0

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

मैं जैकब पाल्मे के site पर जाने की सलाह देता हूं जो आपको कुछ समस्याओं का सामना करने के बारे में बताएगा। यह शायद थोड़ी पुरानी है, लेकिन संक्षेप में, हालांकि आप अपना जटिल एमआईएमई ई-मेल बनाते हैं और भेजते हैं, तो आपको एक या अधिक मेल क्लाइंट मिलेंगे जो सिंटैक्स को सही तरीके से संभाल नहीं सकते हैं। साइट के निर्माण के कुछ उपयोगी उदाहरणों के लिंक भी हैं जिन पर आप जांच और परीक्षण कर सकते हैं।

मेरा मतलब यह नहीं है कि आपको अपना खुद का तर्क रोल करना होगा जैसा हमने किया था: एक अच्छा पैक किया गया समाधान शायद अधिकांश मामलों में सफल होगा। हमने कुछ साल पहले इसे संभालने के लिए अपना खुद का डेल्फी कोड लिखा था, इसलिए मैं इसे दूसरों के लिए शेल्फ पर क्या है, इसके बारे में अद्यतित जानकारी देने के लिए छोड़ दूंगा।

1

इन दिनों मैं, चालाक घटक के ईमेल क्लाइंट का उपयोग हालांकि मुक्त नहीं।

टर्बोपावर इंटरनेट (ओपनसोर्स) नियंत्रण अतीत में मेरे लिए बहुत अच्छा काम करता था।

+0

धन्यवाद, मैंने कुछ वर्षों में अपने घटकों को नहीं देखा है। चालाक घटक निश्चित रूप से बहुत ही समृद्ध हो गया है, लेकिन कीमत टैग थोड़ा सा खड़ा है जब तक कि आपको वास्तव में कुछ उन्नत कार्यक्षमता की आवश्यकता न हो। –

1
function data64(const filename:string): ansistring; 
// uses Classes, IdGlobalProtocols, EncdDecd; 
const 
    crlf = #13#10; 
begin 
    result := ''; 
    with TIdMimeTable.Create do 
    try 
    result := 'data:' 
     + GetFileMIMEType(filename) + ';'; 
    finally 
    Free; 
    end; 
    with TMemoryStream.Create do 
    try 
    LoadFromFile(filename); 
    result := result + 'base64,' + crlf 
     + EncodeBase64(Memory,Size); 
    finally 
    Free; 
    end; 
end;