Email Tracking using

I want to track users who have read my mails.I am doing this but it's not working I am sending mails to myself in outlook. Here is my code which sends mails


        string emailTemplateBody = "Hy this is test mail";
        emailTemplateBody += "<tr><img src=''http://localhost:52583/HttpModule_using_beacon_images/images/<keyvalue>.aspx''  style=''opacity:0.0; filter:alpha(opacity=0);'' /></tr>";

        string templateName = txtTemplateName.Text;

                    string toEmail = mymailaddress

        //// Get unique Key after registring mail to be sent
        string key = bl_email_calls.RegisterSystemEmailAudit("1", templateName, DateTime.Now);
        emailTemplateBody = emailTemplateBody.Replace("<keyvalue>", key);
        //// sending e-mail
        bl_email_calls.SendMailMessage(toEmail, templateName, emailTemplateBody, key);
        using (var cn = new SqlConnection(ConfigurationManager.ConnectionStrings["webConnectionString"].ToString()))
           //code to insert record in database;            }
        Response.Write("Mail sent");
        // return false;
    catch (Exception ex)


Here is my HTTP module i have used from[^]

public class HttpModuleClass : IHttpModule
    //public event EventHandler BeginRequest;

    public void Dispose()


    /// <summary>
    /// public varibles
    /// </summary>
    string footerFile = "~/images/footer.png";
    //string footerFile = "~/images/ajax-loader.gif";
    Email_Calls bl_email_calls = new Email_Calls();

    /// <summary>
    /// Init methoed
    /// </summary>
    /// <param name="context"></param>
    public void Init(HttpApplication context)
        context.BeginRequest += new System.EventHandler(GetImage_BeginRequest);

    /// <summary>
    /// handles requests made to server and call update email read time
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="args"></param>
    public void GetImage_BeginRequest(object sender, System.EventArgs args)
        //cast the sender to a HttpApplication object
        System.Web.HttpApplication application = (System.Web.HttpApplication)sender;

        string url = application.Request.Path; //get the url path
        //string pattern = @"/HttpModule/images/(?<key>.*)\.aspx";
        //string pattern = @"/HttpModule_using_beacon_images/images/(?<key>.*)\.aspx";

        string pattern = @"/HttpModule_using_beacon_images/images/(?<key>.*)\.aspx";
        //string pattern = @"~/images/(?<key>.*)\.aspx";
        //create the regex to match for beacon images
        Regex r = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);
        if (r.IsMatch(url))
            MatchCollection mc = r.Matches(url);
            if ((mc != null) && (mc.Count > 0))
                string key = (mc[0].Groups["key"].Value);


            //now send the REAL image to the client
            //application.Response.ContentType = "image/gif";
            application.Response.ContentType = "image/png";


            //end the response


To request a read receipt, we need add a custom header named 'Disposition-Notification-To' in this example, read receipts will go back to '' it's important to note that read receipts will only be sent by those mail clients that a) support them and b)have them enabled.

//Add "Disposition-Notification-To" for Read receipt

  mail.Headers.Add("Disposition-Notification-To", "<>");

I got it. I was making some little mistakes.

Actually I was saving the email body into the database so I had to use '' instead of ' and that was making all the trouble. When is removed '' it worked fine.

Need Your Help

JQuery UI Datepicker newDate minus 2 months

jquery jquery-ui jquery-ui-datepicker

I have been searching everywhere but can't seem to find a solution to this problem.

How to replace tabs to spaces

python string

I've been given the task to create a function that takes a string and does the following: