Friday, 5 December 2014

Simple Windows Service which sends auto Email alerts

Simple Windows Service which sends auto Email alerts

--------------------------------------------------------------------------------------------------------------------------

Introduction                                                 



 Hi,                                                                                  
  This is Ravindra, Implemented a windows service in one of my project and like to place a
 sample Windows service for the very Basic users of .Net.
     First Create a table in Msaccess with Name  'Empdata'
       Sample screenshot

 1.Open Visual Studio.net > Select New Project 
              Sample screenshot

     2.Select Windows Service and give Name as 'GoodDay' and Click Ok.

     3.Right Click the Design and Select Properties and give the Name and ServiceName as 
        'GoodDay' and set AutoLog to 'True'

     4.Drag and drop the OleDbConnection and Select its properties and change its name to
        'conn' and provide the connection String(I provided the Database sample(Ms
         Access)) along with this code.

     5.Right Click the Design and select View Code and
        Select Project > Add Reference > Select System.Web >Press Ok

     6.Now add the following to your code         
          using System.Web.Mail;
          using System.Data.OleDb;

     7.Declare DateTime mdt=DateTime.Now;

     8.    In static void Main()
         Edit the following Code
        ServicesToRun = new System.ServiceProcess.ServiceBase[] { new GoodDay() };

     9. Edit the following code in onstart()
        
DataSet ds = new DataSet();
protected override void OnStart(string[] args)
{
DateTime dt=DateTime.Now;
conn.Open();
OleDbDataAdapter da=new OleDbDataAdapter("select * from Empdata",conn);
da.Fill(ds);
if(dt.ToShortDateString()==mdt.ToShortDateString())
{
foreach(DataRow dr in ds.Tables[0].Rows)
{
mdt=DateTime.Now.AddDays(+1);
String mailtxt="";
MailMessage mm = new MailMessage();
mm.BodyFormat = MailFormat.Html;
mm.To = dr["emp_email"].ToString();
mm.From = "xyz@xyz.com";
mm.Subject="Good Day";
mailtxt = "<font face='verdana' color='#FF9900'><b>"+"Hi "+dr["emp_name"].ToString()+"," + "</b></font><br><br>";
mailtxt=mailtxt+"<font face='verdana' color='#FF0000'><b>"+"Good Day." + "</b></font><br><br>";
mailtxt=mailtxt+"<font face='verdana' color='#008080'><b>"+"May today be filled with sunshine and smile, laughter and love." + "</b></font><br><br>";
mailtxt=mailtxt+"<font face='verdana' color='#0000FF'><b>Cheers!" + "<br><br>";
mm.Body = mailtxt;
SmtpMail.SmtpServer="localhost";
SmtpMail.Send(mm);
}
}
}

10.Go to Design,right click and Select Add Installer ,you will notice two controls
     serviceProcessInstaller1,serviceInstaller1

11.Select  serviceProcessInstaller1 and go to its properties and change the Account
      type to 'Local System'

12. Select  serviceInstaller1 and go to its properties and change DisplayName and
      ServiceName to 'GoodDay' and make the StartType to 'Automatic'

13.Build the Solution(Cntrl+Shift+B)


14.Open the Visual Studio .Net Command Prompt and give the path of application
     for example C:\bin\Debug and then type InstallUtil GoodDay.exe               
     to uninstall,  InstallUtil    /u GoodDay.exe        
 Sample screenshot
     


15. After Installation ,right click My Computer and
       Select 'Manage'
       and Select 'Service and Applications'
       and in that Select 'Services'
Select 'GoodDay' and start the Service.

Happy Codding
All the Best...................

No comments:

Post a Comment