Go Back   CodingForums.com > :: Server side development > ASP.NET

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 10-03-2012, 12:28 AM   PM User | #1
sean3838
New Coder

 
Join Date: Jan 2012
Posts: 90
Thanks: 1
Thanked 13 Times in 13 Posts
sean3838 is an unknown quantity at this point
Emails on Page_Load

I am trying to send as an html page an email on Page_Load after all the dynamic controls are rendered. It works and I get sent the email... but its hundreds of them. It's somehow looping through the sendEmail() function and I don't know why. If I add a button to the page and send the email in its on_click event it works and only sends 1 email. I'm not sure what the problem is?

Here is the code I'm just going to copy and paste the whole thing in:

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.IO;

namespace mceTickets
{
    public partial class design : System.Web.UI.Page
    {

        public String name;
        public String email;
        public Int32 price;
        public Int32 numTickets;
        public String usertocredit;

        public string bannerURL;
        public string ticketName;
        public string eventName;
        public string venueName;
        public string venueAddress;
        public string venueAddress2;
        public string city;
        public string startDay;
        public string startMonth;
        public string startYear;
        public string startMinute;
        public string startHour;

        protected void Page_Load(object sender, EventArgs e)
        {
            
            name = Request.QueryString["Name"];
            email = Request.QueryString["Email"];
            price = Convert.ToInt32(Request.QueryString["p1"]);
            numTickets = Convert.ToInt32(Request.QueryString["num1"]);
            usertocredit = Request.QueryString["User"];

            string promoterName = "";
            int index = usertocredit.IndexOf("Event");
            if (index > 0)
            { promoterName = usertocredit.Substring(0, index); }

            bannerURL = "http://www.mcetickets.com/images/ticket_banner.jpg";

            ReadXmlFile(Server.MapPath("~/Promoters/NewEvent/" + usertocredit));

            readFirstTicket();
            
            sendEmail()
        }

        private void readFirstTicket()
        {
            for (int i = 0; i < numTickets; i++)
            {
                Guid g = Guid.NewGuid();
                string random = g.ToString();

                Image image1 = new Image();
                image1.ID = "Image1";
                image1.Height = 200;
                image1.Width = 37;
                image1.ImageUrl = bannerURL;

                Image image2 = new Image();
                image2.ID = "Image2";
                image2.ImageUrl = "http://www.mcetickets.com/images/ticket_logo.jpg";

                Image barCode = new Image();
                barCode.ID = "myBarCode";
                barCode.ImageUrl = "http://barcode.tec-it.com/barcode.ashx?code=QRCode&modulewidth=fit&data=" + random.Substring(0, 10) + "&dpi=96&imagetype=gif&rotation=0&color=&bgcolor=&fontcolor=&quiet=0&qunit=mm&eclevel=";

                Label label13 = new Label();
                label13.ID = "Label13";
                label13.Text = "Ticket Name:";

                Label label10 = new Label();
                label10.ID = "Label10";
                label10.Text = ticketName;

                Label label7 = new Label();
                label7.ID = "Label7";
                label7.Text = "Price:";

                Label label9 = new Label();
                label9.ID = "Label9";
                label9.Text = "£" + price.ToString();

                Label label14 = new Label();
                label14.ID = "Label14";
                label14.Text = "Event Name:";

                Label label15 = new Label();
                label15.ID = "Label15";
                label15.Text = "Event Date:";

                Label label4 = new Label();
                label4.ID = "Label4";
                label4.Text = eventName;

                Label label5 = new Label();
                label5.ID = "Label5";
                label5.Text = startMonth + " " + startDay + ", " + startYear + " at " + startHour + ":" + startMinute;

                Label label1 = new Label();
                label1.ID = "Label1";
                label1.Text = venueName;

                Label label2 = new Label();
                label2.ID = "Label2";
                label2.Text = venueAddress;

                Label label12 = new Label();
                label12.ID = "Label12";
                label12.Text = venueAddress2;

                Label label3 = new Label();
                label3.ID = "Label3";
                label3.Text = city;

                Label label16 = new Label();
                label16.ID = "Label16";
                label16.Text = "For: ";

                Label label11 = new Label();
                label11.ID = "Label11";
                label11.Text = name;

                Label label6 = new Label();
                label6.ID = "Label6";
                label6.Text = "www.mcetickets.com";

                PlaceHolder1.Controls.Add(new LiteralControl("<table class='style1'><tr>"));
                PlaceHolder1.Controls.Add(new LiteralControl("<td class='style2' valign='top' rowspan='3'>"));
                PlaceHolder1.Controls.Add(image1);
                PlaceHolder1.Controls.Add(new LiteralControl("</td><td class='style3'>"));
                PlaceHolder1.Controls.Add(label13);
                PlaceHolder1.Controls.Add(new LiteralControl("&nbsp;"));
                PlaceHolder1.Controls.Add(label10);
                PlaceHolder1.Controls.Add(new LiteralControl("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"));
                PlaceHolder1.Controls.Add(label7);
                PlaceHolder1.Controls.Add(new LiteralControl("&nbsp;"));
                PlaceHolder1.Controls.Add(label9);
                PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
                PlaceHolder1.Controls.Add(label14);
                PlaceHolder1.Controls.Add(new LiteralControl("&nbsp;"));
                PlaceHolder1.Controls.Add(label4);
                PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
                PlaceHolder1.Controls.Add(label15);
                PlaceHolder1.Controls.Add(new LiteralControl("&nbsp;"));
                PlaceHolder1.Controls.Add(label5);
                PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
                PlaceHolder1.Controls.Add(new LiteralControl("</td><td rowspan='3' class='style4' >"));
                PlaceHolder1.Controls.Add(image2);
                PlaceHolder1.Controls.Add(new LiteralControl("</td></tr><tr><td class='style3'>"));
                PlaceHolder1.Controls.Add(barCode);
                PlaceHolder1.Controls.Add(new LiteralControl("</td></tr><tr><td class='style3'>"));
                PlaceHolder1.Controls.Add(label1);
                PlaceHolder1.Controls.Add(label2);
                PlaceHolder1.Controls.Add(label12);
                PlaceHolder1.Controls.Add(label3);
                PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
                PlaceHolder1.Controls.Add(label16);
                PlaceHolder1.Controls.Add(label11);
                PlaceHolder1.Controls.Add(new LiteralControl("&nbsp;- "));
                PlaceHolder1.Controls.Add(label6);
                PlaceHolder1.Controls.Add(new LiteralControl("</td></tr></table>"));
                PlaceHolder1.Controls.Add(new LiteralControl("<br /><br />"));
            }
        }

        private void ReadXmlFile(string fileName)
        {

            System.Xml.XmlTextReader ab = new System.Xml.XmlTextReader(fileName);

            while (ab.Read())
            {

                while (ab.ReadToFollowing("TicketName"))
                {
                    ticketName = ab.ReadElementContentAsString();
                }
            }
            ab.Close();

            System.Xml.XmlTextReader tname2 = new System.Xml.XmlTextReader(fileName);

            while (tname2.Read())
            {

                while (tname2.ReadToFollowing("TicketName2"))
                {
                    ticketName2 = tname2.ReadElementContentAsString();
                }
            }
            tname2.Close();

            System.Xml.XmlTextReader tname3 = new System.Xml.XmlTextReader(fileName);

            while (tname3.Read())
            {

                while (tname3.ReadToFollowing("TicketName3"))
                {
                    ticketName3 = tname3.ReadElementContentAsString();
                }
            }
            tname3.Close();

            System.Xml.XmlTextReader xReader = new System.Xml.XmlTextReader(fileName);

            while (xReader.Read())
            {

                while (xReader.ReadToFollowing("EventName"))
                {
                    eventName = xReader.ReadElementContentAsString();
                }
            }
            xReader.Close();

            System.Xml.XmlTextReader a = new System.Xml.XmlTextReader(fileName);

            while (a.Read())
            {

                while (a.ReadToFollowing("VenueName"))
                {
                    venueName = a.ReadElementContentAsString() + ", ";
                }
            }
            a.Close();

            System.Xml.XmlTextReader b = new System.Xml.XmlTextReader(fileName);

            while (b.Read())
            {

                while (b.ReadToFollowing("VenueAddress"))
                {
                    venueAddress = b.ReadElementContentAsString() + ", ";
                }
            }
            b.Close();

            System.Xml.XmlTextReader c = new System.Xml.XmlTextReader(fileName);

            while (c.Read())
            {

                while (c.ReadToFollowing("VenueAddress2"))
                {
                    string content = c.ReadElementContentAsString();
                    if (content != "")
                    {
                        venueAddress2 = content;
                    }
                }
            }
            c.Close();

            System.Xml.XmlTextReader d = new System.Xml.XmlTextReader(fileName);

            while (d.Read())
            {

                while (d.ReadToFollowing("VenueTownCity"))
                {
                    city = d.ReadElementContentAsString();
                }
            }
            d.Close();

            System.Xml.XmlTextReader u = new System.Xml.XmlTextReader(fileName);

            while (u.Read())
            {

                while (u.ReadToFollowing("StartDay"))
                {
                    startDay = u.ReadElementContentAsString();
                }
            }
            u.Close();

            System.Xml.XmlTextReader ua = new System.Xml.XmlTextReader(fileName);

            while (ua.Read())
            {

                while (ua.ReadToFollowing("StartMonth"))
                {
                    startMonth = ua.ReadElementContentAsString();
                }
            }
            ua.Close();

            System.Xml.XmlTextReader us = new System.Xml.XmlTextReader(fileName);

            while (us.Read())
            {

                while (us.ReadToFollowing("StartYear"))
                {
                    startYear = us.ReadElementContentAsString();
                }
            }
            us.Close();

            System.Xml.XmlTextReader ug = new System.Xml.XmlTextReader(fileName);

            while (ug.Read())
            {

                while (ug.ReadToFollowing("StartMinute"))
                {
                    startMinute = ug.ReadElementContentAsString();
                }
            }
            ug.Close();

            System.Xml.XmlTextReader uz = new System.Xml.XmlTextReader(fileName);

            while (uz.Read())
            {

                while (uz.ReadToFollowing("StartHour"))
                {
                    startHour = uz.ReadElementContentAsString();
                }
            }
            uz.Close();

        }

        private void sendEmail()
        {
            WebClient myClient = new WebClient();
            string myPageHTML = null;
            byte[] requestHTML;
            // Gets the url of the page
            string currentPageUrl = Request.Url.ToString();

            UTF8Encoding utf8 = new UTF8Encoding(); 

            requestHTML = myClient.DownloadData(currentPageUrl);

            myPageHTML = utf8.GetString(requestHTML);

            const string SERVER = "relay-hosting.secureserver.net";
            MailMessage objMail = new MailMessage();
            objMail.From = new MailAddress("from@fromAddress.com");
            objMail.To.Add(new MailAddress("to@toAddress.com"));
            objMail.IsBodyHtml = true;
            objMail.Subject = "MCE Order Confirmation";
            objMail.Priority = System.Net.Mail.MailPriority.High;
            objMail.Body = myPageHTML;
            SmtpClient Client = new SmtpClient(SERVER, 25);
            Client.Credentials = CredentialCache.DefaultNetworkCredentials;

            try
            {
                Client.Send(objMail);
            }
            catch
            {
                Response.Write("There was an error sending you your tickets!");
            }
        }

    }
}
sean3838 is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 11:33 PM.


Advertisement
Log in to turn off these ads.