2010-10-14 16 views
8

HI, मैं system.net.mail.mailmessage का उपयोग करके एक साधारण अधिसूचना भेजने की कोशिश कर रहा हूं। मैं बस स्ट्रिंग को संदेश निकाय के रूप में पास करता हूं। लेकिन समस्या यह है कि मल्टी-लाइन संदेश भेजने के बावजूद स्ट्रिंग में सही "\ r \ n" प्रारूप जानकारी है। दृष्टिकोण में खोला गया मेल एक लंबी एकल रेखा के रूप में प्रदर्शित होगा। लेकिन दृष्टिकोण में स्रोत देखें सही नए लाइन प्रारूप के साथ संदेश प्रदर्शित करेगा।मेलमेसेज ने दृष्टिकोण के रूप में स्ट्रिंग को न्यूलाइन के बिना आउटपुट

उदाहरण के लिए: मूल संदेश लग रहा होगा की तरह:

line1 
line 2 
line 3 

लेकिन यह की तरह आउटलुक में दिखाया जाएगा: दृष्टिकोण से

line1 line 2 line 3 

स्रोत देखें अभी भी प्रदर्शित करेगा

line1 
line 2 
line 3 

दृष्टिकोण को सही ne के साथ संदेश प्रदर्शित करने के लिए मुझे क्या करना चाहिए wline जानकारी?

उत्तर

14

आउटलुक कभी-कभी न्यूलाइन को हटा देता है (यह आम तौर पर यह एक टिप्पणी करता है कि उसने इसे भी किया है), यह सुनिश्चित करने के लिए नियमों के बारे में बिल्कुल सही नहीं है, लेकिन मुझे यकीन है कि अगर आप . (पूर्ण स्टॉप) जोड़ते हैं तो मुझे पूरा यकीन है। प्रत्येक पंक्ति के अंत में यह उन्हें हटा नहीं देगा। गलत पर IsBodyHTML Line breaks are removed in posts made in plain text format in Outlook

+0

धन्यवाद! अब काम करता है –

+0

लेकिन क्यों क्यों, डिफ़ॉल्ट रूप से सादा पाठ में लाइन ब्रेक को हटाने का प्रयास मेरे बाहर है! –

+0

@pstar: मुझे लगता है कि यह लाइनवॉपिंग के साथ समस्याओं का सामना करना है। जैसे कि आप मुझे 80 अक्षरों पर लाइन के लिए एक ईमेल भेजते हैं और मेरे पास एक ही सेटिंग है + इसे '>' के साथ प्रतिक्रिया को उपसर्ग करना चाहिए, मेरी प्रतिक्रिया फिर से आपकी लाइनों को लपेट लेगी ताकि आपका मूल पाठ काफी बदसूरत लगे। –

0

सेट करें::

वास्तव में, इस लेख को देखकर ऐसा लगता है कि आप भी HTML या RTF के रूप में ईमेल भेजने के द्वारा इसे हल कर सकते लगता है

ms.IsBodyHtml = false;

डिफ़ॉल्ट यह तक झूठा है लेकिन ऐसा प्रतीत होता है कि आपने इसे कहीं सही पर सेट कर दिया है क्योंकि दृष्टिकोण सोचता है कि यह HTML है।

+0

मैंने IsBodyHtml को झूठी सेट करने या स्पष्ट रूप से सेट करने का प्रयास नहीं किया है, ऐसा लगता है कि किसी भी तरह से काम नहीं कर रहा है। –

2

नीचे

"Your string.\n" 

और की तरह अपने स्ट्रिंग है:

ms.IsBodyHtml = false; 

लेकिन आप अपने जंक फ़ोल्डर में मिल सकता है

1

आउटलुक हमेशा पंक्ति विराम निकाल देंगे, तथापि, क्या किया जा सकता है प्रयुक्त होता है:

उपयोग करने के चरण में: एन स्ट्रिंग MyString vironment.Newline या \ n \ r

आप का उपयोग करना चाहिए + = "यह मेरी पाठ" + "% 0 d% 0A"

यह% 0 d% 0A के रूप में दृष्टिकोण द्वारा मान्यता प्राप्त हो जाएगा एक नई लाइन के लिए भागने अनुक्रम।

+0

यह काम नहीं किया। – eaglei22

+0

सच - यह काम करता था लेकिन अब यह लाइन ब्रेक गायब के साथ एक संदेश भेजता है। दृष्टिकोण में आपको संदेश में शीर्ष बैनर पर क्लिक करना होगा और लाइन ब्रेक को पुनर्स्थापित करना होगा। इस समय कोई समाधान नहीं है – XikiryoX

+0

आह ठीक है। प्रतिक्रिया के लिए धन्यवाद। Outlook 2013 के साथ काम करने के लिए मैं जो कर रहा हूं उसके लिए नीचे अपना उत्तर देखें। – eaglei22

3

यह मैं

mMailMessage.IsBodyHtml = true; 
Literal1.Text = "Dear Admin, <br/>You have recieved an enquiry onyour Website. Following are the details of enquiry:<br/><br/>Name: " + TextBox2.Text + "<br/>Address: " + TextBox3.Text + ", " + TextBox4.Text + "<br/>Phone: " + TextBox5.Text + "<br/>Email: " + TextBox2.Text + "<br/>Query: " + TextBox6.Text+"<br/> Regards, <br/> Veritas Team"; 
mMailMessage.Body = Literal1.Text; 
+0

"
" जोड़ना मेरे लिए काम करता है। पृष्ठभूमि के लिए, मैं एक सेल वैल्यू ले रहा था जिसमें आउटलुक ड्राफ्ट ईमेल बॉडी के लिए उचित रूप से बाहर आने के लिए ईमेल बॉडी टेक्स्ट और Chr (10) को "
" के साथ बदल दिया गया था। – Vamsi

0

के लिए काम किया यह मेरे लिए काम किया:

mail.Body = String.Format(@"Some text here: 
A new line here 
And another line here"); 

बस 2 और 3 लाइन पर मांगपत्र नहीं करने के लिए सावधान रहना होगा।

0

परेशान रेखा से पहले लाइन के अंत में कुछ स्ट्रिंग रिक्त स्थान जोड़ कर इसे काम करने में सक्षम था।

msg.Append("\n some Message" + " "); 
msg.Append("\n another message"); 
1

एचटीएमएल // ईमेल शरीर होना चाहिए // नए लाइन वर्ण तोड़ HTML के साथ \ n \ r

mailMsg.IsBodyHtml = true; 
mailMsg.Body = this.Body; 
mailMsg.BodyEncoding = System.Text.Encoding.ASCII; 
mailMsg.Body = mailMsg.Body.Replace(Environment.NewLine, "<br/>"); 
0

Necro एक सवाल ansering लेकिन कुछ के लिए काम में आ सकता है की जगह भी।

msg.IsBodyHtml = true; 
AlternateView av = AlternateView.CreateAlternateViewFromString(msg.Body, new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Html)); 
av.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit; 
msg.AlternateViews.Add(av); 
AlternateView avPlain = AlternateView.CreateAlternateViewFromString(msg.Body, new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Plain)); 
avPlain.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit; 
msg.AlternateViews.Add(avPlain); 
0

अपने संदेश से पहले शब्दशः ऑपरेटर "@" उपयोग करके देखें:

message.Body = 
@" 
line1 
line 2 
line 3 
" 

पर विचार करें कि यह भी बाईं मार्जिन से पाठ की दूरी ईमेल शरीर छोड़ दिया मार्जिन से वास्तविक sistance पर प्रभावित करता है ..