यहाँ मेरी एसएमटीपी सहायक मैं हर रोज इस्तेमाल के एक अंश के रूप में मैं मूल रूप से दूर छोड़ दिया है ....
public bool SendMail(string strTo, string strFrom, string strCc, string strBcc, string strBody, string strSubject)
{
bool isComplete = true;
SmtpClient smtpClient = new SmtpClient();
MailMessage message = new MailMessage();
try
{
//Default port will be 25
smtpClient.Port = 25;
message.From = new MailAddress(smtpEmailSource);
message.To.Add(strTo);
message.Subject = strSubject;
if (strCc != "") { message.Bcc.Add(new MailAddress(strCc)); }
if (strBcc != "") { message.Bcc.Add(new MailAddress(strBcc)); }
message.IsBodyHtml = true;
string html = strBody; //I usually use .HTML files with tags (e.g. {firstName}) I replace with content. This allows me to edit the emails in VS by opening a .HTML file and it's easy to do string replacements.
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(html, new ContentType("text/html"));
message.AlternateViews.Add(htmlView);
// Send SMTP mail
smtpClient.Send(message);
}
catch
{
isComplete = false;
}
return isComplete;
}
[अद्यतन]
महत्वपूर्ण बिंदुओं ...
IsBodyHtml का कहना है कि आपका संदेश HTML स्वरूपित है। अगर आप केवल HTML के एक दृश्य को भेज रहे थे, तो यह सब आपको चाहिए।
वैकल्पिक HTML का उपयोग मेरे एचटीएमएल को स्टोर करने के लिए किया जाता है, यह एक HTML संदेश भेजने के लिए आवश्यक नहीं है, लेकिन यदि आप एचटीएमएल और सादा पाठ शामिल करते हैं तो यह आवश्यक है कि रिसीवर एचटीएमएल प्रस्तुत करने में असमर्थ है।
मैं ऊपर मेरी Plainview बाहर ले तो यह स्पष्ट नहीं है, खेद ...
कुंजी यहाँ है कि आप का उपयोग करने के IsBodyHtml = सच की जरूरत है अगर आप एक एचटीएमएल स्वरूपित संदेश भेजना चाहते हैं है (डिफ़ॉल्ट रूप से गलत है) आपकी सामग्री को HTML के रूप में प्रस्तुत करने के लिए।
वास्तव में मैं भी क्या करता हूं। मैं सिर्फ उत्सुक हूं कि क्या हो रहा है यदि मैं एक वैकल्पिक दृश्य का उपयोग करने के बजाय IsBodyHtml सेट के साथ शरीर को HTML को असाइन करता हूं। –
मुझे लगता है कि बॉडी प्रॉपर्टी सिर्फ 'वैकल्पिक दृश्य' के लिए एक शॉर्टकट है और 'IsBodyHTML सच/गलत' के बीच आप निर्दिष्ट कर रहे हैं कि 'बॉडी' या तो सादे टेक्स्ट या HTML है। यदि आप आरटीएफ प्रारूप में सिर्फ एक निकाय भेजना चाहते हैं तो आप बॉडी प्रॉपर्टी का उपयोग नहीं कर सकते हैं, तो आपको वैकल्पिक विकल्प बनाना होगा ताकि आप आरटीएफ के लिए सामग्री प्रकार निर्दिष्ट कर सकें। –