Click here to Skip to main content
15,918,193 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have a problem tracking emails.I want to know who read my email.When i send mail to my outlook it works fine but when i want to send it across the network it does not work.ie. When i debug my code and give path of localhost it works but when i give path of my PC on the network it does not work i have hosted the website on IIS locally.Here is my PC name and port where i have configured it PC-50:102

Here is code.
Http Module
C#
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 = @"/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);
                    bl_email_calls.UpdateSystemEmailAuditReadDate(key);

                }

                //now send the REAL image to the client
                //application.Response.ContentType = "image/gif";
                application.Response.ContentType = "image/png";
                application.Response.WriteFile(application.Request.MapPath(footerFile));

                //end the response
                application.Response.End();
            }
        }
    }

And here is code which is creating all the mess

C#
           string emailTemplateBody = TextArea1.Value;
        //This works
//emailTemplateBody += "<br /><img style='opacity:0.0; filter:alpha(opacity=0);' src=http://localhost:50421/HttpModule_using_beacon_images-Copy/images/<keyvalue>.aspx   />";

//This does not works
emailTemplateBody += "<br /><img src=http://it-83:302/images/<keyvalue>.aspx style='opacity:0.0; filter:alpha(opacity=0);'  />";

           string templateName = txtTemplateName.Text;


           string toEmail=txtTo.Text;


           //// 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()))
           {
               var cmd = new SqlCommand("insert into dr_emailtemplate (Practice_Code ,Template_Name ,TemplateBody ,Created_By ,Created_Date)" +
                   "values('" + 1010 + "', '" + templateName + "', '" + "Test Body" + "', 'Mairaj " + key + "', getdate())", cn);
               cn.Open();
               cmd.ExecuteNonQuery();
               cn.Close();
           }

Please help.
Posted
Comments
Yuri Vital 14-Jun-12 8:39am    
- Implement a logger like "log4net" and read what append.
And / Or
- Get a network analyser (i.e. wireshark) and look what append on the network (ie : request destination reach ?)
Sandeep Mewara 14-Jun-12 16:11pm    
OP said:
How to implement it.
Yuri Vital 14-Jun-12 16:57pm    
Look at this tutorial for log4net : http://www.netrostar.com/Howtouselogging

1 solution

You are using PC-50:102 but in your code you have used it-83:302 ?

Check this [Receive Email Read Notification and Save It in Database[^]]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900