नीचे एक "ईमेल प्रेषक" बनाने के निर्देश दिए गए हैं, जिसमें डेल्फी एप्लिकेशन से सीधे ईमेल संदेश और अटैचमेंट भेजने का विकल्प शामिल है। शुरू करने से पहले, विकल्प पर विचार करें ...
मान लीजिए कि आपके पास एक एप्लिकेशन है जो कुछ डेटाबेस डेटा पर काम करता है, अन्य कार्यों के बीच। उपयोगकर्ताओं को आपके एप्लिकेशन से डेटा निर्यात करने की आवश्यकता है तथा ईमेल के माध्यम से डेटा भेजें (जैसे त्रुटि रिपोर्ट)। नीचे दिए गए दृष्टिकोण के बिना, आपको डेटा को एक बाहरी फ़ाइल पर निर्यात करना होगा और फिर इसे भेजने के लिए एक ईमेल क्लाइंट का उपयोग करना होगा।
डेल्फी से ईमेल भेजना
ऐसे कई तरीके हैं जिनसे आप सीधे डेल्फी से एक ईमेल भेज सकते हैं, लेकिन इसका सबसे सरल तरीका है ShellExecute एपीआई। यह कंप्यूटर पर स्थापित डिफ़ॉल्ट ईमेल क्लाइंट का उपयोग करके ईमेल भेजेगा। हालांकि यह दृष्टिकोण स्वीकार्य है, आप इस तरह से अटैचमेंट भेजने में असमर्थ हैं।
एक अन्य तकनीक इस बार ईमेल भेजने के लिए Microsoft आउटलुक और OLE का उपयोग करती है साथ में लगाव समर्थन, लेकिन एमएस आउटलुक का उपयोग करने के लिए आवश्यक है।
फिर भी एक अन्य विकल्प डेल्फी के अंतर्निहित समर्थन के लिए विंडोज सरल मेल एपीआई का उपयोग करना है। यह केवल तभी काम करता है जब उपयोगकर्ता के पास MAPI- अनुरूप ईमेल प्रोग्राम स्थापित हो।
हम यहां जिस तकनीक पर चर्चा कर रहे हैं वह उपयोग करता है इंडी (इंटरनेट डायरेक्ट) घटक - एक महान इंटरनेट घटक सूट में लोकप्रिय इंटरनेट प्रोटोकॉल शामिल हैं जो डेल्फी में लिखे गए हैं और अवरुद्ध सॉकेट्स पर आधारित हैं।
TIdSMTP (Indy) विधि
इंडी घटकों (डेल्फी 6+ के साथ जहाज) के साथ ईमेल संदेशों को भेजना (या पुनर्प्राप्त करना) उतना ही आसान है जितना कि एक घटक को छोड़ना या एक फॉर्म पर दो, कुछ गुण सेट करना और "एक बटन क्लिक करना"।
Indy का उपयोग करते हुए डेल्फी से अनुलग्नकों के साथ एक ईमेल भेजने के लिए, हमें दो घटकों की आवश्यकता होगी। पहले TIdSMTOP एक SMTP सर्वर के साथ कनेक्ट और संचार करने (मेल भेजने) के लिए उपयोग किया जाता है। दूसरा, द TIdMessage संदेशों के भंडारण और एन्कोडिंग को संभालता है।
जब संदेश का निर्माण किया जाता है (जब TIdMessage डेटा से "भरा हुआ" है, ईमेल का उपयोग कर एक एसएमटीपी सर्वर को दिया जाता है TIdSMTP.
ईमेल प्रेषक स्रोत कोड
मैंने एक साधारण मेल प्रेषक परियोजना बनाई है जिसे मैं नीचे समझाता हूं। आप यहाँ पूर्ण स्रोत कोड डाउनलोड कर सकते हैं।
ध्यान दें: यह लिंक परियोजना के लिए ज़िप फ़ाइल का प्रत्यक्ष डाउनलोड है। आपको इसे बिना किसी समस्या के खोलने में सक्षम होना चाहिए, लेकिन यदि आप इसका उपयोग नहीं कर सकते हैं 7-Zip संग्रह को खोलने के लिए ताकि आप प्रोजेक्ट फ़ाइलों को निकाल सकें (जिसे एक फ़ोल्डर में संग्रहीत किया जाता है जिसे कहा जाता है मेल भेजे).
जैसा कि आप डिज़ाइन-टाइम स्क्रीनशॉट से देख सकते हैं, का उपयोग करके एक ईमेल भेजने के लिए TIdSMTP घटक, आपको कम से कम SMTP मेल सर्वर (होस्ट) निर्दिष्ट करने की आवश्यकता है। संदेश को स्वयं ही भरे हुए नियमित ईमेल भागों की आवश्यकता होती है, जैसे से, सेवा, विषय, आदि।
यहाँ वह कोड है जो एक अनुलग्नक के साथ एक ईमेल भेजने का काम करता है:
प्रक्रिया TMailerForm.btnSendMailClick (प्रेषक: Tobject); शुरू StatusMemo। स्पष्ट; // सेटअप SMTP SMTP.Host: = ledHost। पाठ; SMTP.Port: = 25; // सेटअप मेल संदेश MailMessage। से। पता: = ledFrom। पाठ; MailMessage। प्राप्तकर्ता। EMailAddresses: = ledTo। पाठ + ',' + ledCC.Text; MailMessage। विषय: = ledSubject। पाठ; MailMessage। तन। पाठ: = शरीर। पाठ; अगर FileExists (ledAttachment)। पाठ) फिर TIdAttachment। बनाएँ (MailMessage)। MessageParts, ledAttachment। पाठ); //मेल भेजेप्रयत्नप्रयत्न SMTP.Connect (1000); SMTP.Send (MailMessage); के सिवायपर E: अपवाद करते हैं। StatusMemo। लाइन्स। सम्मिलित करें (0, 'ERROR:' + E.Message); समाप्त; आखिरकारअगर SMTP.Connected फिर SMTP.Disconnect; समाप्त; समाप्त; (* btnSendMail क्लिक *)
ध्यान दें: स्रोत कोड के अंदर, आपको दो अतिरिक्त प्रक्रियाएँ मिलेंगी जिनका उपयोग मान बनाने के लिए किया जाता है मेज़बान, से, तथा सेवा संग्रहण के लिए INI फ़ाइल का उपयोग करके लगातार बक्से को संपादित करें।