2010-01-21 15 views
6

यह बहुत अच्छा काम करता है ताकि जैसे text/html सामग्री प्रकार स्ट्रिंग बताए द्वारा HTML स्वरूप में (आउटलुक के लिए) ईमेल भेजने के लिए:Outlook में richtext प्रारूप में ईमेल कैसे भेजें?

using (MailMessage message = new MailMessage()) 
{ 
    message.From = new MailAddress("[email protected]"); 
    message.ReplyTo = new MailAddress("[email protected]"); 
    message.To.Add(new MailAddress("[email protected]")); 
    message.Subject = "This subject"; 
    message.Body = "This content is in plain text"; 
    message.IsBodyHtml = false; 

    string bodyHtml = "<p>This is the HTML <strong>content</strong>.</p>"; 

    using (AlternateView altView = AlternateView.CreateAlternateViewFromString(bodyHtml, 
    new ContentType(MediaTypeNames.Text.Html))) 
    { 
    message.AlternateViews.Add(altView); 
    SmtpClient smtp = new SmtpClient(smtpAddress); 
    smtp.Send(message); 
    } 
} 

ईमेल सही ढंग से आउटलुक (2003) में HTML के रूप में मान्यता प्राप्त है।
लेकिन अगर मैं रिच टेक्स्ट का प्रयास करें:

MediaTypeNames.RichText; 

आउटलुक इस का पता नहीं लगा है, यह वापस सादे पाठ में गिर जाता है।
मैं समृद्ध टेक्स्ट प्रारूप में ईमेल कैसे भेजूं?

+0

कृपया मेल के स्रोत दिखाने के लिए, ताकि हम यह निर्धारित कर सकते हैं कि यह Outlook में या .NET Framework में कोई समस्या है: http://www.outlook-tips.net/howto/view_source.htm – Heinzi

+0

@ हेनज़ी, क्षमा करें यह एक्सचेंज के भीतर है इसलिए आपके द्वारा लिंक किए गए निर्देश काम नहीं करता –

+0

क्या ईमेल स्रोत देखने का कोई और तरीका है? –

उत्तर

9

नीचे की रेखा है, आप System.Net.Mail का उपयोग करके आसानी से ऐसा नहीं कर सकते हैं।

Outlook में समृद्ध टेक्स्ट SMTP दुनिया (एक्सचेंज के बाहर) में winmail.dat फ़ाइल के रूप में भेजा जाता है।

winmail.dat फ़ाइल एक टीएनईएफ संदेश है। इसलिए, आपको winmail.dat फ़ाइल के अंदर अपना समृद्ध टेक्स्ट बनाना होगा (टीएनईएफ नियमों के लिए प्रारूपित)।

हालांकि, यह सब कुछ नहीं है। आउटलुक संपीड़ित आरटीएफ के एक विशेष संस्करण का उपयोग करता है, इसलिए, Winmail.dat फ़ाइल में जोड़े जाने से पहले, आपको अपने आरटीएफ को भी कम करने की आवश्यकता होगी।

नीचे की रेखा, यह करना मुश्किल है, और जब तक क्लाइंट वास्तव में, वास्तव में इस कार्यक्षमता की आवश्यकता नहीं है, तो मैं इसे पुनर्विचार करूँगा।

ऐसा कुछ नहीं है जो आप .NET में कोड की कुछ पंक्तियों के साथ कर सकते हैं।

+0

हां, मैंने इसकी जांच की है और मैं एक ही निष्कर्ष पर आया हूं। एक्सचेंज एसडीके में कुछ सहायक तरीके हैं, लेकिन ये प्रबंधित एक्सचेंज असेंबली पर निर्भर हैं, जो स्वतंत्र रूप से वितरित नहीं हैं। –

1

तुम भी नीचे के रूप में अपने कैलेंडर दृश्य से पहले एक और वैकल्पिक दृश्य जोड़कर इस लक्ष्य को हासिल कर सकते हैं:

var body = AlternateView.CreateAlternateViewFromString(bodyHtml, new System.Net.Mime.ContentType("text/html")); 
mailMessage.AlternateViews.Add(body); 
+0

धन्यवाद, अब मैं इस विधि का उपयोग कर समृद्ध टेक्स्ट मेल भेज सकता हूं। – Sak

0

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

public void sendUsersMail(string recipientMailId, string ccMailList, string body, string subject) 
    { 
     try 
     { 
      MailMessage Msg = new MailMessage(); 
      Msg.From = new MailAddress("[email protected]", "Tracker Tool"); 
      Msg.To.Add(recipientMailId); 
      if (ccMailList != "") 
       Msg.CC.Add(ccMailList); 
      Msg.Subject = subject; 
      var AltBody = AlternateView.CreateAlternateViewFromString(body, new System.Net.Mime.ContentType("text/html")); 
      Msg.AlternateViews.Add(AltBody); 
      Msg.IsBodyHtml = true; 
      SmtpClient smtp = new SmtpClient("mail.xyz.com"); 
      smtp.Send(Msg); 
      smtp.Dispose(); 
     } 
     catch (Exception ex) 
     { 
     } 
    } 
संबंधित मुद्दे