दिलचस्प पोस्ट
स्मृति-मैप किए गए फ़ाइलों के फायदे क्या हैं? "डिफरेंसिंग टाइप-पक्ड पॉइंटर कड़े-अलियासिंग नियमों को तोड़ देगा" चेतावनी CUDA में, स्मृति कोयलािंग क्या है, और यह कैसे हासिल किया जाता है? jQuery ओवरराइड डिफ़ॉल्ट सत्यापन त्रुटि संदेश प्रदर्शन (सीएसएस) पॉपअप / टूलटिप जैसे कीजिए C2DM कार्यान्वयन PHP कोड @ManyToMany हाइबरनेट अतिरिक्त तालिका में अतिरिक्त क्षेत्र (एस) जोड़ सकते हैं? कीवर्ड वास्तव में VBA में क्या करता है? "चेतावनी सामग्री शरीर की लंबाई की लंबाई निर्धारित नहीं कर सका" क्या मतलब है और इसे कैसे से छुटकारा मिल सकता है? MongoDB रिश्तों: एम्बेड या संदर्भ? SPARQL क्वेरी से एकत्रित परिणाम Internet Explorer में Mozilla's toSource () विधि को लागू करना एक div के अंदर कैसे खड़ी एक <span> केंद्र में? एंड्रॉइड भाषण मान्यता सतत सेवा मैं एमवीसी में आइटम्स की एक सूची कैसे पोस्ट कर सकता हूं स्ट्रिंग को जावास्क्रिप्ट फ़ंक्शन कॉल में कैसे चालू करें?

सी # का इस्तेमाल करते हुए ई-मेल भेजा जा रहा है

मुझे अपने सी # ऐप के माध्यम से ईमेल भेजने की ज़रूरत है

मैं एक वीबी 6 पृष्ठभूमि से आया हूं और एमएपीआई नियंत्रण के साथ बहुत बुरा अनुभव किया था। सबसे पहले, एमएपीआई ने एचटीएमएल ईमेल का समर्थन नहीं किया था और दूसरा, सभी ईमेल मेरे डिफ़ॉल्ट मेल आउटबॉक्स पर भेजे गए थे। इसलिए मुझे अभी भी प्राप्त करने के लिए क्लिक करें।

अगर मुझे थोक HTML बॉडी ई-मेल (100-200) भेजने की आवश्यकता है, तो सी # में ऐसा करने का सबसे अच्छा तरीका क्या होगा?

अग्रिम में धन्यवाद।

वेब के समाधान से एकत्रित समाधान "सी # का इस्तेमाल करते हुए ई-मेल भेजा जा रहा है"

आप .NET.Mail.MailMessage वर्ग .NET ढांचे का उपयोग कर सकते हैं।

आप यहां एमएसडीएन प्रलेख पा सकते हैं।

यहां एक सरल उदाहरण (कोड स्निपेट) है:

using System.Net; using System.Net.Mail; using System.Net.Mime; ... try { SmtpClient mySmtpClient = new SmtpClient("my.smtp.exampleserver.net"); // set smtp-client with basicAuthentication mySmtpClient.UseDefaultCredentials = false; System.Net.NetworkCredential basicAuthenticationInfo = new System.Net.NetworkCredential("username", "password"); mySmtpClient.Credentials = basicAuthenticationInfo; // add from,to mailaddresses MailAddress from = new MailAddress("test@example.com", "TestFromName"); MailAddress to = new MailAddress("test2@example.com", "TestToName"); MailMessage myMail = new System.Net.Mail.MailMessage(from, to); // add ReplyTo MailAddress replyto = new MailAddress("reply@example.com"); myMail.ReplyToList.Add(replyTo); // set subject and encoding myMail.Subject = "Test message"; myMail.SubjectEncoding = System.Text.Encoding.UTF8; // set body-message and encoding myMail.Body = "<b>Test Mail</b><br>using <b>HTML</b>."; myMail.BodyEncoding = System.Text.Encoding.UTF8; // text or html myMail.IsBodyHtml = true; mySmtpClient.Send(myMail); } catch (SmtpException ex) { throw new ApplicationException ("SmtpException has occured: " + ex.Message); } catch (Exception ex) { throw ex; } 

अधिक तेज़ तरीका के लिए थोक ईमेल भेजने का सबसे अच्छा तरीका है धागे का उपयोग करना। मैंने थोक ईमेल भेजने के लिए इस कंसोल एप्लिकेशन को लिखा है। मैंने दो धागा पूल बना कर, दो बैचों में अलग-अलग ईमेल आईडी को अलग कर दिया है।

 using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Net.Mail; namespace ConsoleApplication1 { public class SendMail { string[] NameArray = new string[10] { "Recipient 1", "Recipient 2", "Recipient 3", "Recipient 4", "Recipient 5", "Recipient 6", "Recipient 7", "Recipient 8", "Recipient 9", "Recipient 10" }; public SendMail(int i, ManualResetEvent doneEvent) { Console.WriteLine("Started sending mail process for {0} - ", NameArray[i].ToString() + " at " + System.DateTime.Now.ToString()); Console.WriteLine(""); SmtpClient mailClient = new SmtpClient(); mailClient.Host = Your host name; mailClient.UseDefaultCredentials = true; mailClient.Port = Your mail server port number; // try with default port no.25 MailMessage mailMessage = new MailMessage(FromAddress,ToAddress);//replace the address value mailMessage.Subject = "Testing Bulk mail application"; mailMessage.Body = NameArray[i].ToString(); mailMessage.IsBodyHtml = true; mailClient.Send(mailMessage); Console.WriteLine("Mail Sent succesfully for {0} - ",NameArray[i].ToString() + " at " + System.DateTime.Now.ToString()); Console.WriteLine(""); _doneEvent = doneEvent; } public void ThreadPoolCallback(Object threadContext) { int threadIndex = (int)threadContext; Console.WriteLine("Thread process completed for {0} ...",threadIndex.ToString() + "at" + System.DateTime.Now.ToString()); _doneEvent.Set(); } private ManualResetEvent _doneEvent; } public class Program { static int TotalMailCount, Mailcount, AddCount, Counter, i, AssignI; static void Main(string[] args) { TotalMailCount = 10; Mailcount = TotalMailCount / 2; AddCount = Mailcount; InitiateThreads(); Thread.Sleep(100000); } static void InitiateThreads() { //One event is used for sending mails for each person email id as batch ManualResetEvent[] doneEvents = new ManualResetEvent[Mailcount]; // Configure and launch threads using ThreadPool: Console.WriteLine("Launching thread Pool tasks..."); for (i = AssignI; i < Mailcount; i++) { doneEvents[i] = new ManualResetEvent(false); SendMail SRM_mail = new SendMail(i, doneEvents[i]); ThreadPool.QueueUserWorkItem(SRM_mail.ThreadPoolCallback, i); } Thread.Sleep(10000); // Wait for all threads in pool to calculation... //try //{ // // WaitHandle.WaitAll(doneEvents); //} //catch(Exception e) //{ // Console.WriteLine(e.ToString()); //} Console.WriteLine("All mails are sent in this thread pool."); Counter = Counter+1; Console.WriteLine("Please wait while we check for the next thread pool queue"); Thread.Sleep(5000); CheckBatchMailProcess(); } static void CheckBatchMailProcess() { if (Counter < 2) { Mailcount = Mailcount + AddCount; AssignI = Mailcount - AddCount; Console.WriteLine("Starting the Next thread Pool"); Thread.Sleep(5000); InitiateThreads(); } else { Console.WriteLine("No thread pools to start - exiting the batch mail application"); Thread.Sleep(1000); Environment.Exit(0); } } } } 

मैंने नमूने के लिए सरणी सूची में 10 रिसीपेंट को परिभाषित किया है। यह मेल भेजने के लिए दो धागा पूल बनाने के लिए ईमेल के दो बैच बनाएगा। आप अपने डेटाबेस से विवरण भी चुन सकते हैं।

आप इस कोड को कंसोल एप्लिकेशन में प्रतिलिपि करके चिपकाने के द्वारा उपयोग कर सकते हैं। (प्रोग्राम.cs फ़ाइल को बदलकर)। तब एप्लिकेशन उपयोग के लिए तैयार है।

मैं आशा करता हूं कि इससे तुम्हें सहायता मिलेगी :)।

कोड:

 using System.Net.Mail new SmtpClient("smtp.server.com", 25).send("from@email.com", "to@email.com", "subject", "body"); 

मास ईमेल:

एसएमटीपी सर्वर में आमतौर पर कनेक्शन टोपी की संख्या पर एक सीमा होती है, यदि आप सैकड़ों ईमेल भेजने का प्रयास करते हैं, तो आप आवेदन अप्रतिसादी रूप से प्रदर्शित कर सकते हैं

समाधान की:

  • यदि आप WinForm का निर्माण कर रहे हैं तो कतार की प्रक्रिया के लिए एक पृष्ठभूमिवेर्कर का उपयोग करें
  • यदि आप आईआईएस एसएमटीपी सर्वर या एक एसएमटीपी सर्वर का उपयोग कर रहे हैं जिसमें आउटबॉक्स फ़ोल्डर है तो आप SmtpClient () का उपयोग कर सकते हैं। PickupDirectoryLocation = "c: / smtp / outboxFolder"; यह आपके सिस्टम को उत्तरदायी बनाए रखेगा।
  • यदि आप किसी स्थानीय एसएमटीपी सर्वर का उपयोग नहीं कर रहे हैं, तो आप किसी भी सेवा के लिए फ़ोल्डवर्डर को मॉनिटर करने के लिए फाईलवाटर का उपयोग करने के लिए सिस्टम सेवा बना सकते हैं, उसके बाद आप वहां आने वाले किसी भी ईमेल की प्रक्रिया करेंगे।

.NET ढांचे में कुछ अंतर्निहित वर्ग हैं जो आपको अपने ऐप के माध्यम से ई-मेल भेजने की अनुमति देता है।

आपको System.Net.Mail नामस्थान में एक नज़र रखना चाहिए, जहां आपको मेलमैसेज और SmtpClient वर्ग मिलेगा। आप MailMessage वर्ग के BodyFormat को MailFormat.Html पर सेट कर सकते हैं

यदि आप मेलमैसेज क्लास के वैकल्पिक ऑप्शन की संपत्ति का उपयोग करते हैं, तो यह सहायक भी हो सकता है, ताकि आप अपने मेल का सादा-पाठ संस्करण प्रदान कर सकें, ताकि यह उन क्लाइंट्स द्वारा पढ़ा जा सके जो HTML का समर्थन नहीं करते हैं

http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.alternateviews.aspx

आप SMTP या CDO का उपयोग कर ईमेल भेज सकते हैं

SMTP का उपयोग कर:

 mail.From = new MailAddress("your_email_address@gmail.com"); mail.To.Add("to_address"); mail.Subject = "Test Mail"; mail.Body = "This is for testing SMTP mail from GMAIL"; SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password"); SmtpServer.EnableSsl = true; 

स्रोत: सी # एसएमटीपी ईमेल

 CDO.Message oMsg = new CDO.Message(); CDO.IConfiguration iConfg; iConfg = oMsg.Configuration; ADODB.Fields oFields; oFields = iConfg.Fields; ADODB.Field oField = oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"]; oFields.Update(); oMsg.Subject = "Test CDO"; oMsg.From = "from_address"; oMsg.To = "to_address"; oMsg.TextBody = "CDO Mail test"; oMsg.Send(); 

स्रोत: सी # सीडीओ ईमेल

मैनली

मैं एएसपीएनईटीईएम लाइब्रेरी की दृढ़ता से सिफारिश कर सकता हूं: http://www.aspnetemail.com/

System.Net.Mail आपको कहीं मिलेगा यदि आपकी ज़रूरतें केवल मूलभूत हैं, लेकिन यदि आप मुसीबत में चलते हैं, तो कृपया एस्पनेटईमेल को देखें। उसने मुझे समय का एक गुच्छा बचा लिया है, और मुझे पता है कि इसके द्वारा कसम खाता हूँ।

नामस्थान System.Net.Mail का उपयोग करें यहां एमएसडीएन पेज पर एक लिंक है

आप SmtpClient क्लास का उपयोग करके ईमेल भेज सकते हैं।

मैंने कोड नमूना समझा, इसलिए विवरण के लिए चेकआउट MSDN

 MailMessage message = new MailMessage( "fromemail@contoso.com", "toemail@contoso.com", "Subject goes here", "Body goes here"); SmtpClient client = new SmtpClient(server); client.Send(message); 

कई ईमेल भेजने का सबसे अच्छा तरीका यह है कि इसके लिए किसी भी चीज़ को पीछे छोड़ दें और भेज दें!

फ्लुएंट ईमेल लाइब्रेरी पर एक नज़र डालें मैंने यहां इसके बारे में ब्लॉग किया है

आपकी आवश्यकताओं के लिए आपके पास एक अच्छी और धाराप्रवाह एपीआई है:

 Email.FromDefault() .To("you@domain.com") .Subject("New order has arrived!") .Body("The order details are…") .Send();