दिलचस्प पोस्ट
घुमाओ पर एक छवि स्पिन या घुमाएं matplotlib: क्या मैं एक्सेसब्प्लोट ऑब्जेक्ट्स बना सकता हूं, फिर उन्हें एक आकृति के उदाहरण में जोड़ूं? गैर-अवरुद्ध या अतुल्यकालिक I / O Node.js में क्या है? ASP.NET MVC स्वचालित कैशिंग विकल्प को कैसे अक्षम करें? jQuery के AJAX सफलता कॉलबैक फ़ंक्शन परिभाषा अद्वितीय / यादृच्छिक नामों के साथ फाइलें स्टोर करें OSX: सिस्टम-वाइड चाबियाँ निकालें घटनाओं का पता लगाएं? Django के केवल कुछ हिस्सों का उपयोग करें? MVC5 रेजर html.dropdownlist के लिए चयनित जब मान सरणी में है एंड्रॉइड पर अपाचे कॉमन्स एचटीटीपी क्लाइंट के लिए लॉगिंग को सक्षम कैसे करें पोस्टग्रेज़ पासवर्ड प्रमाणीकरण विफल रहता है getSelection () IE में काम नहीं कर रहा है IPhone सिम्युलेटर में स्थान सेट करें 'पोको' परिभाषा आईओएस ऑटोलायआउट- दृश्यों के बीच दो अलग-अलग दूरी सेट करने के तरीके, स्क्रीन ऊंचाई पर निर्भर करता है

php अनुलग्नक के साथ ई-मेल भेजें

मैं इस पीएचपी फंक्शन के साथ समस्या को ढूंढने में असमर्थ हूं जो मुझे लिखा था कि उसे ई-मेल संलग्नक के साथ भेजना चाहिए। मैं इसके साथ थोड़ी देर के लिए संघर्ष कर रहा था।

function myMail($to, $subject, $mail_msg, $filename, $contentType){ $random_hash = md5(date('r', time())); $headers = "From: webmaster@example.com\r\nReply-To: ".$to; $headers .= "\r\nContent-Type: ".$contentType. "; boundary=\"PHP-mixed-".$random_hash."\""; $attachment = chunk_split(base64_encode(file_get_contents($filename))); ob_start(); echo " --PHP-mixed-$random_hash Content-Type: multipart/alternative; boundary=\"PHP-alt-$random_hash\" --PHP-alt-$random_hash Content-Type: text/plain; charset=\"utf-8\" Content-Transfer-Encoding: 7bit $mail_msg --PHP-alt-$random_hash --PHP-mixed-$random_hash-- Content-Type: text/plain; name=\"$filename\" Content-Transfer-Encoding: base64 Content-Disposition: attachment $attachment --PHP-mixed-$random_hash-- "; $message = ob_get_clean(); $mail_sent = @mail( $to, $subject, $message, $headers ); return $mail_sent ? "Mail sent" : "Mail failed"; } 

संपादित करें समस्या यह है कि मेल का संदेश फ़ाइल के साथ मिलाया जाता है और अनुलग्नक के रूप में भेजता है।

वेब के समाधान से एकत्रित समाधान "php अनुलग्नक के साथ ई-मेल भेजें"

मैंने अभी कुछ ईमेल देखे हैं, और मुझे पता है कि अंतिम लगाव की सीमा '-' के साथ समाप्त होती है, जबकि उद्घाटन सीमा चिन्ह नहीं करता। आपके कोड में, आपके पास:

 --PHP-mixed-$random_hash-- Content-Type: text/plain; name=\"$filename\" Content-Transfer-Encoding: base64 Content-Disposition: attachment $attachment --PHP-mixed-$random_hash-- 

शायद यह होना चाहिए:

 --PHP-mixed-$random_hash Content-Type: text/plain; name=\"$filename\" Content-Transfer-Encoding: base64 Content-Disposition: attachment $attachment --PHP-mixed-$random_hash-- 

यहां दिए गए उदाहरण को देखें:

http://en.wikipedia.org/wiki/MIME#Multipart_messages

आर्टेफैक्टो ने मुझे अधिक ध्यान देने के साथ आउटपुट को देखा और मुझे ठीक पाया:

 फ़ंक्शन myMail ($ $, $ विषय, $ mail_msg, $ filename, $ contentType, $ pathToFilename) {
     $ random_hash = md5 (तिथि ('आर', समय ()));
     $ हेडर = "से: webmaster@mysite.com \ r \ n उत्तर-प्रति:" $ to $;
     $ हेडर। = "\ r \ n कंटेंट-टाइप: मल्टीपार्ट / मिश्रित; सीमा = \" PHP- मिश्रित - "। $ random_hash।" \ "";
     $ अनुलग्नक = चंक_एसप्लीट (base64_encode (file_get_contents ($ pathToFilename)));
     ob_start ();
  गूंज "
 --PHP-mixed- $ random_hash
 सामग्री-प्रकार: मल्टीपार्ट / वैकल्पिक;  सीमा = \ "पीएचपी-alt- $ random_hash \"

 --PHP-alt- $ random_hash
 सामग्री-प्रकार: पाठ / सादे;  charset = "utf-8 \" \
 सामग्री-स्थानांतरण-एन्कोडिंग: 7 बिट

 $ mail_msg

 --PHP-alt- $ random_hash--

 --PHP-mixed- $ random_hash
 सामग्री-प्रकार: $ contentType;  नाम = \ "$ फ़ाइल नाम \" 
 सामग्री-स्थानांतरण-एन्कोडिंग: base64 
 कंटेंट-डिस्पोज़शन: अटैचमेंट 

 $ लगाव
 --PHP-mixed- $ random_hash--
 ";
 $ संदेश = ob_get_clean ();
 $ एफ एच = fopen ( 'log.txt', 'डब्ल्यू');
 fwrite ($ एफ एच, $ संदेश);
 $ mail_sent = @mail ($ से $ $ विषय, $ संदेश, $ हेडर);
 वापसी $ mail_sent?  "मेल भेजा": "मेल विफल";
 }

जब तक आप एमआईएमई मेल के आंतरिक कामकाज के बारे में जानने के लिए ऐसा नहीं कर रहे हैं, मानक जवाब एक मेलर लाइब्रेरी, जैसे कि PHPMailer या स्विफ्टमेलर का उपयोग करना है जो बॉक्स से अटैचमेंट से निपट सकता है।

फाइल संलग्न करने के तरीके पर स्विफ्ट मेलर उदाहरण यहाँ हैं

ये हेडर हैं जो मैं उपयोग करता हूं और वे हमेशा एक जादू की तरह काम करते हैं

 $base = basename($_FILES['upload']['name']); $file = fopen($randname_path,'rb'); $size = filesize($randname_path); $data = fread($file,$size); fclose($file); $data = chunk_split(base64_encode($data)); //boundary $div = "==Multipart_Boundary_x".md5(time())."x"; //headers $head = "From: $from\n". "MIME-Version: 1.0\n". "Content-Type: multipart/mixed;\n". " boundary=\"$div\""; //message $mess = "--$div\n". "Content-Type: text/plain; charset=\"iso-8859-1\"\n". "Content-Transfer-Encoding: 7bit\n\n". "$message\n\n". "--$div\n". "Content-Type: application/octet-stream; name=\"$base\"\n". "Content-Description: $base\n". "Content-Disposition: attachment;\n". " filename=\"$base\"; size=$size;\n". "Content-Transfer-Encoding: base64\n\n". "$data\n\n". "--$div\n"; $return = "-f$from"; 

http://asdlog.com/Create_form_to_send_email_with_attachment