मैं PHP से ईएमएल फाइलें उत्पन्न करने की कोशिश कर रहा हूं। क्या कोई पुस्तकालय है जो मुझे आसानी से बनाने की अनुमति देगी? मुझे इंटरनेट पर कुछ ActiveX घटक मिल सकते हैं लेकिन कुछ और पोर्टेबल का उपयोग करेंगे।PHP लाइब्रेरी ईएमएल ईमेल फाइलें उत्पन्न करने के लिए?
उत्तर
मैं टेम्पलेट है, जहां प्रत्येक क्षेत्र एक TEMPLATE_<name>
चर की जगह इस तरह का उपयोग करते हुए अपने आप को माइम संदेश के निर्माण समाप्त हो गया:
From: TEMPLATE_FROM_ADDRESS
MIME-Version: 1.0
To: TEMPLATE_TO_ADDRESS
Subject: TEMPLATE_SUBJECT
Content-Type: multipart/mixed; boundary="080107000800000609090108"
This is a message with multiple parts in MIME format.
--080107000800000609090108
Content-Type: text/plain
TEMPLATE_BODY
--080107000800000609090108
Content-Type: application/octet-stream;name="TEMPLATE_ATTACH_FILENAME"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;filename="TEMPLATE_ATTACH_FILENAME"
TEMPLATE_ATTACH_CONTENT
--080107000800000609090108
तब अंतिम संदेश बनाने काफी सरल है str_replace
का उपयोग कर:
$content = file_get_contents("Template.eml");
$content = str_replace("TEMPLATE_FROM_ADDRESS", $fromEmail, $content);
$content = str_replace("TEMPLATE_TO_ADDRESS", $toEmail, $content);
// etc. for each template parameter
// Also don't forget to base64_encode the attachment content;
$content = str_replace("TEMPLATE_ATTACH_CONTENT", base64_encode($attachContent), $content);
इस पोस्ट में फ़ाइल अनुलग्नक के बारे में अतिरिक्त जानकारी: Attachment name and file extension not working in email *.eml
मुझे लगता है कि आपको पुस्तकालय की आवश्यकता नहीं है। यह सिर्फ सादा पाठ (जैसे http://bitdaddys.com/example1.eml)
Date: Sat, 12 Aug 2006 14:25:25 -0400
From: John Doe <[email protected]>
Subject: BitDaddys Software
To: [email protected]
Dear BitDaddys Corp.,
We have added your software to our approved list.
Thank you for your efforts.
Sincerely,
John Doe
Some Server Company
आप हेडर के साथ सिर्फ उत्पादन पाठ और fwrite का उपयोग कर इसे बचा सकता है। संलग्नक base64_encode()
का उपयोग के लिए कहा गया है here
महत्वपूर्ण बात यह है कि इसे एसएमटीपी अर्थशास्त्र का पालन करना चाहिए - यानी हेडर और शरीर के बीच प्रत्येक शीर्षलेख के अंत में सीआरएलएफ और एक खाली रेखा (सीआरएलएफ द्वारा समाप्त)। शरीर को 7 बिट एएससीआई (या मुद्रित मुद्रित) के रूप में एन्कोड किया जाना चाहिए। 'सेक्शन नंबर' द्वारा – symcbean
imap_savebody (imap लाइब्रेरी का हिस्सा http://us1.php.net/manual/en/function.imap-savebody.php) का उपयोग शून्य $ part_number के साथ करें। यह पूरे संदेश के साथ कोड की एक पंक्ति के साथ एक सुंदर .eml फ़ाइल बनाता है (शून्य $ part_number = सभी भागों ... दस्तावेज नहीं बल्कि काम करता है)।
अन्य दो समाधान ईमेल के प्रारूप पर निर्भर करते हैं (केवल एक अनुलग्नक और पहले समाधान में कोई HTML अनुभाग नहीं, और केवल दूसरे में टेक्स्ट ईमेल)।
imap_savebody एक परिपूर्ण .eml फ़ाइल बनाता है इससे कोई फर्क नहीं पड़ता कि आने वाले ईमेल का प्रारूप क्या है (जब तक यह निश्चित रूप से आरएफसी-शिकायत है)।
का अर्थ है '$ part_number' पैरामीटर – redexp
क्या आप इसे स्क्रैच से बनाना चाहते हैं, या ईमेल बुद्धि इमेप फ़ंक्शंस पढ़ने के बाद? शायद imap_savebody() मदद कर सकते हैं - http://www.csschat.com/archive/index.php/t-3287.html? – BartekR
हां मुझे इसे स्क्रैच से बनाने की ज़रूरत है। मेरे पास मूल रूप से एक ईमेल, शीर्षक, शरीर और अनुलग्नक है और इसके लिए ईएमएल बनाने की आवश्यकता है। –