Introduction
This article will help you to create a simple web service for sending a newsletter to subscribers in ASP.NET.

Step 1
Open your Visual Studio then select Add New Project then choose C# then add a webservice (WebService1.asmx) and add a default.aspx page.
Step 2
Open your Webservice1.asmx page and use the following namespace:
  1. using System.Net.Mail; //if any error go to references right click on it and add reference, choose .net tab and add System.Net
Then add the following web method into your webservice1.asmx page:
  1. [WebMethod]
  2. public string sendEmail(string senderFrom, string subject, string body)
  3. {
  4. string connetionString = null;
  5. SqlConnection connection;
  6. SqlDataAdapter adapter = new SqlDataAdapter();
  7. DataSet ds = new DataSet();
  8. connetionString = "Data Source=servername;Initial Catalog=dbname;uid=xxx;pwd=xxx";
  9. connection = new SqlConnection(connetionString);
  10. connection.Open();
  11. adapter.SelectCommand = new SqlCommand("SELECT emailId from subscribers", connection);//your sql command here
  12. adapter.Fill(ds);
  13. connection.Close();
  14. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  15. {
  16. string ddds = ds.Tables[0].Rows[1]["emailId"].ToString();
  17. MailMessage Msg = new MailMessage();
  18. Msg.From = new MailAddress(senderFrom);
  19. Msg.To.Add(ddds);
  20. Msg.Subject = subject;
  21. Msg.Body = body;
  22. Msg.IsBodyHtml = true;
  23. SmtpClient smtp = new SmtpClient();
  24. smtp.Host = "smtp.gmail.com";
  25. System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
  26. NetworkCred.UserName = "your email id here";
  27. NetworkCred.Password = "your password here";
  28. smtp.UseDefaultCredentials = true;
  29. smtp.Credentials = NetworkCred;
  30. smtp.Port = 587;
  31. smtp.EnableSsl = true;
  32. smtp.Send(Msg);
  33. }
  34. return "Newsletter sent to every one";
  35. }
Step 3
Now we need to create a web reference for our web service (webService1.asmx) page.

In Visual Studio 2010 go to references then right-click on it then Add Service Reference then click Advanced and click Add web reference then type your URL, for example:

http://localhost:61834/Webservice1.asmx

then click go and change your web reference name (example: NewsLetter) to whatever you want and click Add Reference.

Now our web service is ready to use.
Step 4
Open your default .aspx page and call your web service page (WebService1.asmx).
  1. namespace SendNewsLetter
  2. {
  3. public partial class default : System.Web.UI.Page
  4. {
  5. WebService1 obj = new WebService1();
  6. string senderFrom, subject, body;
Now we need to send our information to the web service.
  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. }
  4. protected void sendEmail_Click(object sender, EventArgs e)
  5. {
  6. senderFrom = "sender address (example: [email protected]";
  7. subject = "your subject here";
  8. body = "your body content here";
  9. string send = obj.sendEmail(senderFrom, subject, body);
  10. ltlResult.Visible = true;
  11. ltlResult.Text = sc.ToString();
  12. }
This is a simple way to send a newsletter to subscribers using a web service that uses ASP.NET.
Full Example
WebService1.asmx:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Services;
  6. using AdventureSports.Controls;
  7. using System.Data;
  8. using System.Net.Mail;
  9. namespace SendNewsLetter
  10. {
  11. /// <summary>
  12. /// Summary description for WebService1
  13. /// </summary>
  14. [WebService(Namespace = "http://tempuri.org/")]
  15. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  16. [System.ComponentModel.ToolboxItem(false)]
  17. // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
  18. // [System.Web.Script.Services.ScriptService]
  19. public class WebService1 : System.Web.Services.WebService
  20. {
  21. [WebMethod]
  22. public string sendEmail(string senderFrom, string subject, string body)
  23. {
  24. string connetionString = null;
  25. SqlConnection connection;
  26. SqlDataAdapter adapter = new SqlDataAdapter();
  27. DataSet ds = new DataSet();
  28. connetionString = "Data Source=servername;Initial Catalog=dbname;uid=xxx;pwd=xxx";
  29. connection = new SqlConnection(connetionString);
  30. connection.Open();
  31. adapter.SelectCommand = new SqlCommand("SELECT emailId from subscribers", connection);//your sql command here
  32. adapter.Fill(ds);
  33. connection.Close();
  34. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  35. {
  36. string ddds = ds.Tables[0].Rows[1]["emailId"].ToString();
  37. MailMessage Msg = new MailMessage();
  38. Msg.From = new MailAddress(senderFrom);
  39. Msg.To.Add(ddds);
  40. Msg.Subject = subject;
  41. Msg.Body = body;
  42. Msg.IsBodyHtml = true;
  43. SmtpClient smtp = new SmtpClient();
  44. smtp.Host = "smtp.gmail.com";
  45. System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
  46. NetworkCred.UserName = "your email id here";
  47. NetworkCred.Password = "your password here";
  48. smtp.UseDefaultCredentials = true;
  49. smtp.Credentials = NetworkCred;
  50. smtp.Port = 587;
  51. smtp.EnableSsl = true;
  52. smtp.Send(Msg);
  53. }
  54. return "Newsletter sent to every one";
  55. }
  56. }
  57. }
default.aspx:
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="SendNewsLetter.default"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <title></title>
  6. </head>
  7. <body>
  8. <form id="form1" runat="server">
  9. <div>
  10. <asp:Button ID="btnSendEmail" runat="server" OnClick="sendEmail_Click" Text="Send Email to Subscribers"/>
  11. <asp:Literal ID="ltlResult" runat="server" Visible="false"></asp:Literal>
  12. </div>
  13. </form>
  14. </body>
  15. </html>
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using System.IO;
  8. namespace SendNewsLetter
  9. {
  10. public partial class default : System.Web.UI.Page
  11. {
  12. WebService1 obj = new WebService1();
  13. string senderFrom, subject, body;
  14. protected void Page_Load(object sender, EventArgs e)
  15. {
  16. }
  17. protected void sendEmail_Click(object sender, EventArgs e)
  18. {
  19. senderFrom = "sender address (example: [email protected]";
  20. subject = "your subject here";
  21. body = "your body content here";
  22. string send = obj.sendEmail(senderFrom, subject, body);
  23. ltlResult.Visible = true;
  24. ltlResult.Text = sc.ToString();
  25. }
  26. }
  27. }