2012-10-11 12 views
6

का उपयोग कर ईमेल संदेश निकाय में विस्मयादिबोधक चिह्न प्रकट होता है मैं अपनी वेबसाइट में ईमेल भेजने के लिए phpmailer का उपयोग कर रहा हूं। मेरा कोड ठीक काम करता है लेकिन कभी-कभी ईमेल संदेश निकाय में यादृच्छिक स्थानों पर विस्मयादिबोधक चिह्न होता है। मेरा कोड निम्नानुसार है:phpmailer

$mail->SetFrom(FROM_EMAIL,FROM_NAME); //emailid of sender(admin)     
$mail->Subject = 'Subject here.'; //subject of email 
$mail->AddAddress(Address here); //emailid of user(recipient) 
$content = 'some html code here'; 

$mail->MsgHTML($content); //this is body of email 
$mail->Send(); 

यह ठीक काम करता है। लेकिन कभी नहीं मिल रहा है क्यों विस्मयादिबोधक आता है। अग्रिम धन्यवाद ...

+0

विस्मयादिबोधक चिह्न '!' या प्रश्न चिह्न '?' ?? अक्सर, यदि एचटीएमएल मेल देखने वाला क्लाइंट चरित्र सेट गलत व्याख्या करता है (क्योंकि आपका संदेश इसे गलत तरीके से रिपोर्ट करता है), अमान्य वर्ण '?' के रूप में दिखाई देंगे। –

+0

को '$ मेल-> CharSet = 'UTF-8' की आवश्यकता हो सकती है;' –

उत्तर

8

मुझे लगता है कि ऐसा इसलिए है क्योंकि ईमेल संदेशों में एक पंक्ति पर 998 से अधिक वर्ण नहीं हो सकते हैं।

जोड़ने का प्रयास करें,

$mail->WordWrap = 50; 
+0

अभी भी एक ही त्रुटि नहीं हो रही है – CodeWarrior

+1

इसे देखें, http://www.tinyfrogsoftware.com/the-story-of-the-rogue-exclamation- मार्क-या-हाउ-आई-लॉस्ट -4-घंटे-ऑफ-लाइफ/ उम्मीद है कि इससे मदद मिलती है। –

+3

या '$ सामग्री = वर्डव्रैप ($ सामग्री, 50) जोड़ने का प्रयास करें;' 'सामग्री के बाद = 'कुछ HTML कोड';' –

3

मैं जानता हूँ कि यह देर हो चुकी है, लेकिन एक वैकल्पिक समाधान है कि मेरे लिए काम किया है:

$message = chunk_split(base64_encode($message)); 
:

उपयोग अपना संपूर्ण संदेश का उपयोग कर base64 एन्कोड करने के लिए इस लाइन

फिर, इसे अपना हेडर संलग्न करें:

$headers .= "Content-Transfer-Encoding: base64\r\n\r\n"; 

यह मेल क्लाइंट को बताएगा कि आपका संदेश base64 एन्कोडेड है।

0

मैं इस समस्या को भी, लंबे समय से खोज करने के बाद मैं ने पाया है कि आप अपने HTML WordWrap चाहिए

$emailContent = '<p>some large html</p>'; 
$mail->msgHTML(wordwrap($emailContent, 50)); 
1

आप PHPMailer उपयोग कर रहे हैं तो कोड का केवल एक लाइन की मदद करनी चाहिए थी:

$mail = new PHPMailer(); 
$mail->Encoding = 'base64'; 

यह सामग्री-स्थानांतरण-एन्कोडिंग करेगा: base64 और chunk_split (base64_encode ($ message)) आंतरिक रूप से।

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