2010-08-22 19 views
5

मेरे पास कस्टम प्रपत्र (फॉर्म एपीआई के साथ बनाया गया है) जिसे ईमेल द्वारा अपलोड की गई फ़ाइल भेजने की आवश्यकता है। वर्तमान फॉर्म सबमिट हैंडलर drupal_mail() का उपयोग करके संलग्नक के बिना ईमेल भेजता है।अनुलग्नक के साथ ईमेल भेजना

तो मैं ड्रूपल से अनुलग्नक के साथ ईमेल भेजने के लिए एक समाधान की तलाश में हूं। Mime Mail एक ओवरकिल लगता है क्योंकि HTML मेल, टेम्पलेटिंग और इसकी अन्य सुविधाओं की आवश्यकता नहीं है। लेकिन मेरे द्वारा देखे जाने वाले एकमात्र अन्य विकल्प उचित हेडर सेट करना और मेल 0 में संलग्न फ़ाइल को क्रमशः मेरे hook_mail() कार्यान्वयन में मेल संसाधित करना है।

क्या मुझे कुछ याद आया? क्या इसे संभालने के लिए कोई मॉड्यूल है?

+1

मैं सिर्फ यह जोड़ना चाहता हूं कि जब भी आप फाइल संलग्न करते हैं तो मेल को एमआईएमई मेल के रूप में भेजा जाएगा। तो HTML भाग "ओवरकिल" नहीं है, यह शायद अटैचमेंट कोड के समान कोड है। –

+0

मुझे मेल के शरीर को एचटीएमएल में होना/चाहना नहीं है, मुझे केवल संलग्नक के साथ सादा-पाठ ईमेल चाहिए/चाहिए।कुछ और गुंजाइश से बाहर है और मैं इससे निपटने की आवश्यकता नहीं चाहता हूं। –

+0

यहां परिणाम के आधार पर: http://meta.stackexchange.com/questions/110752/should-we-migrate-questions-to-an-on-topic-site-if-the-asker- अनुरोध आप निर्णय ले सकते हैं इसे फिर से ध्वजांकित करें। अभी के लिए खारिज कर रहा है। –

उत्तर

3

Mimemail यहां सबसे आसान समाधान है। यह एक ओवरकिल हो या नहीं, यह आपको एक फंक्शन कॉल के साथ करने की अनुमति देगा।

यदि आप जोर देते हैं, तो आपके घर का बना attachment sender हो सकता है: बेस 64 आपके अनुलग्नक को एन्कोड करें, उन्हें मेल बॉडी में जोड़ें, सही शीर्षलेख जोड़ें और आप कर चुके हैं।

0

Webform module आपको एक फॉर्म बनाने की अनुमति देता है और एक फ़ाइल विकल्प है जिसे एक अनुलग्नक के रूप में उपयोग किया जा सकता है। सभी उपलब्ध फॉर्म घटक मॉड्यूल के manual page पर सूचीबद्ध हैं।

एक बार स्थापित वेबफॉर्म सामग्री प्रकार के रूप में दिखाई देगा। एक बार जब आप मूलभूत सिद्धांतों को सहेज लेते हैं, जैसे शीर्षक और ईमेल को संबोधित करने के लिए, आपके पास आवश्यक फॉर्म घटक जोड़ने की क्षमता होगी।

'ईमेल' (प्राप्तकर्ता को) विकल्प को सुनिश्चित करने के लिए 'फ़ाइल' प्रकार का एक घटक जोड़ें, और फिर आप अनुमत फ़ाइल प्रकारों, एक्सटेंशन, आकार और अपलोड फ़ोल्डर को अनुकूलित करने में सक्षम होंगे।

+0

हाँ, मुझे पता है कि वेबफॉर्म इसे कर सकता है। लेकिन चूंकि यह एक एकल डेवलपर-निर्माण फ़ॉर्म है जिसे साइट के अंतिम उपयोगकर्ता द्वारा संशोधित नहीं किया गया है, यह मूल वेबफॉर्म उपयोग केस में फिट नहीं है। मैं वेबफॉर्म के पूरे यूआई-संपादन योग्य रूपों को एक ही रूप के लिए लाने से बचना चाहता हूं जिसमें अन्य प्रक्रिया (विभिन्न डीबी अपडेट) भी हैं। –

+0

अब आप हमें बताएं; 0) – CitrusTree

+0

बेशक आप अन्य उपयोगकर्ताओं को वेबफॉर्म को प्रशासित करने की अनुमति नहीं दे सकते: 0) – CitrusTree

0

आप ज़ेंड फ्रेमवर्क का उपयोग कर सकते हैं।

function sendEmail($params){ 
    ini_set('include_path', 'inc/'); 
    require_once ('inc/Zend/Mail.php'); 

    $mail = new Zend_Mail(); 

    $mail->setSubject($params['subject']); 

    $mail->setBodyText($params['bodyText']); 
    $mail->setBodyHtml($params['bodyHtml']); 

    $mail->setFrom($params['fromEmail'], $params['fromName']); 
    $mail->addTo($params['toEmail'], $params['toName']); 

    // Finally, add an attachment 

    assert(file_exists($params['attachFile'])); 

    $at = $mail->addAttachment(file_get_contents($params['attachFile'])); 
    $at->type  = $params['attachType']; 
    $at->disposition = Zend_Mime::DISPOSITION_ATTACHMENT; 
    $at->filename = $params['attachName']; 

    $mail->send(); 
} 
+0

अपडेट के लिए धन्यवाद! – SteAp

1

आप माइम मेल का उपयोग कर सकते हैं और संदेश निकाय को सादे टेक्स्ट प्रारूप में भेज सकते हैं। मॉड्यूल की रीडेमे फ़ाइल से एक अंश यहां दिया गया है:

यूएसएजी यह मॉड्यूल अन्य मॉड्यूल द्वारा आवश्यक हो सकता है, लेकिन यह बहुत उपयोगी नहीं है। एक बार स्थापित, किसी भी मॉड्यूल mimemail() फ़ंक्शन को कॉल द्वारा संदेश भेज सकते हैं:

$sender - a user object, text email address or an array with name, mail 
$recipient - a user object, text email address or an array with name, mail 
$subject - subject line 
$body - body text in HTML format 
$plaintext - boolean, whether to send messages in plaintext-only (default FALSE) 
$headers - a keyed array with headers (optional) 
$text - plaintext portion of a multipart e-mail (optional) 
$attachments - array of arrays with the file's path, MIME type (optional) 
$mailkey - message identifier 

return - an array containing the MIME encoded message 

मुख्य बात सही पर $ प्लेन टेक्स्ट तर्क स्थापित करने के लिए किया जा रहा है। अब आप अपना केक ले सकते हैं और इसे भी खा सकते हैं।

0

आप हमेशा स्विफ्ट मेलर मॉड्यूल पर एक नज़र डाल सकते हैं जो आपको HTML (एमआईएमई) ई-मेल, इनलाइन छवियों के साथ ई-मेल और संलग्नक के साथ ई-मेल भेजने देता है। यह HTML ई-मेल संस्करण के आधार पर स्वचालित रूप से सादे पाठ संस्करणों को उत्पन्न करने के लिए भी सक्षम है, जो अंत में उपयोगकर्ता के ई-मेल क्लाइंट को पसंदीदा संस्करण (HTML या सादा पाठ) प्रदर्शित करने देगा।

स्विफ्ट मेलर मॉड्यूल http://drupal.org/project/swiftmailer पर उपलब्ध है।

रिकॉर्ड के लिए: मैं मॉड्यूल के लेखक और रखरखावकर्ता हूं।

संबंधित मुद्दे