Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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.ReplyTo = 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);
- }
- }
- }
- using System.Net.Mail
- new SmtpClient("smtp.server.com", 25).send("from@email.com",
- "to@email.com",
- "subject",
- "body");
- MailMessage message = new MailMessage(
- "fromemail@contoso.com",
- "toemail@contoso.com",
- "Subject goes here",
- "Body goes here");
- SmtpClient client = new SmtpClient(server);
- client.Send(message);
Add Comment
Please, Sign In to add comment