I was busy during last few months and can not spare time for my blog. However during my project i came up with a situation that I have to send emails on daily basis through system. I would like to share the different approaches which I found during my goggling.
I came across three options to accomplish this:-
1- Create a simple .exe file which sends the mails and add it in windows scheduled tasks.
How To Schedule Task in Windows XP
2- Create a Window Service, which sleeps for 24 hours after sending emails.
Simple Windows Service Sample
3- Create a JOB in Sql Server. For details see:
Automated Email Notifications using SQL Server Job Scheduler
Showing posts with label Email. Show all posts
Showing posts with label Email. Show all posts
How to Test System Generated Emails without Internet in Vista
Recenetly I have to develop a system which generates highly formatted emails. And I decided that I will do that in my home instead of office. After spending some time I figure out a way to do this. I configured IIS server in Windows Vista to save emails in my local drive. and I can see those emails from my outlook express. Here are the details that how to configure IIS:-
1- Run IIS from Start->run->inetmgr
2- Select your PC name from connections pane. and Right Click on SMTP E-Mail in middle pane.

3- In Features screen select Store e-mail in a pickup directory.

4- I have entered D:\Mails in the path.
5- Now goto D:\Mails (or what ever folder you mentioend).
6- When your application sends mail , mails will be saved in that folder with .eml extension. You can view those files with outlook.

7- If still not getting emails in your folder then try to add this line in your code before sending email:-
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
1- Run IIS from Start->run->inetmgr
2- Select your PC name from connections pane. and Right Click on SMTP E-Mail in middle pane.

3- In Features screen select Store e-mail in a pickup directory.

4- I have entered D:\Mails in the path.
5- Now goto D:\Mails (or what ever folder you mentioend).
6- When your application sends mail , mails will be saved in that folder with .eml extension. You can view those files with outlook.

7- If still not getting emails in your folder then try to add this line in your code before sending email:-
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
Send Mails Via .Net
CodeProject
Here is the code to send mails via .Net:-
You can use this class like :-
In case you want to send emails through Gmail server, then use these settings:-
Here is the code to send mails via .Net:-
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Net.Mail; using System.Threading; /// <summary> /// Summary description for Emailing /// </summary> public class Emailing { private const int SmtpPort = 25; private const string SmtpServer = "__SMTP SERVER NAME___"; private const string UserName = "__ USER NAME ___"; private const string Password = "__ PASSWORD __"; private const bool EnableSsl = false; //For Gmail Server set it to true /// <summary> /// Sends the mail /// </summary> /// <param name="toEmailAddresses">';' seperated To email addresses.</param> /// <param name="fromEmailAddress">From email address.</param> /// <param name="subject">The subject.</param> /// <param name="body">The body.</param> /// <param name="mailAttachments">';' seperated mail attachments.</param> /// <param name="isBodyHTML">is body HTML.</param> public static void SendMail(string toEmailAddresses, string fromEmailAddress, string subject, string body, string mailAttachments, bool isBodyHTML) { char[] splitter = { ';' }; MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(fromEmailAddress); mailMessage.Subject = subject; mailMessage.Body = body; mailMessage.IsBodyHtml = isBodyHTML; //Adding Multiple To Addresses string[] mailAddresses = toEmailAddresses.Split(splitter); foreach (string mailAddress in mailAddresses) { if (mailAddress.Length != 0) { mailMessage.To.Add(new MailAddress(mailAddress)); } } //Adding Multiple Attachments string[] attachments = mailAttachments.Split(splitter); foreach (string attachment in attachments) { if (attachment.Length != 0) { Attachment attachFile = new Attachment(attachment); mailMessage.Attachments.Add(attachFile); } } SmtpClient smtpClient = new SmtpClient(); try { smtpClient.Host = SmtpServer; smtpClient.EnableSsl = EnableSsl; System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential(); NetworkCred.UserName = UserName; NetworkCred.Password = Password; smtpClient.UseDefaultCredentials = true; smtpClient.Credentials = NetworkCred; smtpClient.Port = SmtpPort; smtpClient.Send(mailMessage); } catch { mailMessage = null; smtpClient = null; } } /// <summary> /// Sends the mail on thread. /// </summary> /// <param name="toEmailAddresses">';' seperated To email addresses.</param> /// <param name="fromEmailAddress">From email address.</param> /// <param name="subject">The subject.</param> /// <param name="body">The body.</param> /// <param name="mailAttachments">';' seperated mail attachments.</param> /// <param name="isBodyHTML">is body HTML.</param> public static void SendMailOnThread(string toEmailAddresses, string fromEmailAddress, string subject, string body, string mailAttachments, bool isBodyHTML) { Thread mailThread; mailThread = new System.Threading.Thread(delegate() { SendMail(toEmailAddresses, fromEmailAddress, subject, body, mailAttachments, isBodyHTML); }); mailThread.IsBackground = true; mailThread.Start(); } }
You can use this class like :-
//Send Simple Mail Emailing.SendMail("sample@sample.com", "sample@sample.com", "Subject is test", "body is Test", "", true); //Send mail on thread with two attachments Emailing.SendMailOnThread("sample@sample.com", "sample@sample.com", "Subject is test", "body is Test", "c:\\setup.log;c:\\setup1.log;", true);
In case you want to send emails through Gmail server, then use these settings:-
private const int SmtpPort = 465;//if 465 do not work then try 587 private const string SmtpServer = "smtp.gmail.com"; private const string UserName = "__ USER NAME ___"; private const string Password = "__ PASSWORD __"; private const bool EnableSsl = true;
Subscribe to:
Posts (Atom)