Send User Activation Email After Creating An Account

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 4

————–First Way ————-

    protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)


    {
        //Send email to user for verifying account
        CreateUserWizard cuw = (CreateUserWizard)sender;
        MembershipUser user = Membership.GetUser(cuw.UserName);
        Guid userId = (Guid)user.ProviderUserKey;
        System.Net.Mail.MailMessage EmailMsg = new System.Net.Mail.MailMessage(”info@ask.com”,
CreateUserWizard1.Email);
        EmailMsg.Subject = “Email Verification from ask.com”;
        EmailMsg.IsBodyHtml = true;
        EmailMsg.Body = “Thanks for registering with www.ask.com!<br /><br />Your activation link : <a
href=http://www.ask.com/activate.aspx?ID=” + userId.ToString() + “>Link</a>.”;
        System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient();
        //This object stores the authentication values
        System.Net.NetworkCredential basicAuthenticationInfo = new
System.Net.NetworkCredential(”smtpserverinfo”, “smtpserverpassword”);

        mailClient.Host = “mail.ask.com”;


        mailClient.UseDefaultCredentials = false;
        mailClient.Credentials = basicAuthenticationInfo;
        mailClient.Send(EmailMsg);    

    }

and in activate.aspx:

    protected void Page_Load(object sender, EventArgs e)


    {
        Guid oGuid = new Guid(Request.QueryString["ID"]);
        //Guid oGuid = new Guid();
        MembershipUser oUser = Membership.GetUser(oGuid);
        if (oUser != null && oUser.IsApproved == false)
        {
            oUser.IsApproved = true;
            Membership.UpdateUser(oUser);
            System.Web.Security.FormsAuthentication.RedirectFromLoginPage(oUser.UserName, false);
        }
    }

———Second Way———–

My code looks like:

    protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)


    {
        //Send email to user for verifying account
        CreateUserWizard cuw = (CreateUserWizard)sender;
        MembershipUser user = Membership.GetUser(cuw.UserName);
        Guid userId = (Guid)user.ProviderUserKey;
        System.Net.Mail.MailMessage EmailMsg = new System.Net.Mail.MailMessage(”info@ask.com”,
CreateUserWizard1.Email);
        EmailMsg.Subject = “Email Verification from ask.com”;
        EmailMsg.IsBodyHtml = true;
        EmailMsg.Body = “Thanks for registering with www.ask.com!<br /><br />Your activation link : <a
href=http://www.ask.com/activate.aspx?ID=” + userId.ToString() + “>Link</a>.”;
        System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient();
        //This object stores the authentication values
        System.Net.NetworkCredential basicAuthenticationInfo = new
System.Net.NetworkCredential(”info@ask.com”, “password”); //what is this “password” for??

        mailClient.Host = “mail.ask.com”;


        mailClient.UseDefaultCredentials = false;
        mailClient.Credentials = basicAuthenticationInfo;
        mailClient.Send(EmailMsg);      

    }

and in activate.aspx:

     protected void Page_Load(object sender, EventArgs e)


    {
        Guid oGuid = new Guid();
        MembershipUser oUser = Membership.GetUser(oGuid);
        if (oUser != null && oUser.IsApproved == false)
        {
            oUser.IsApproved = true;
            Membership.UpdateUser(oUser);
            System.Web.Security.FormsAuthentication.RedirectFromLoginPage(oUser.UserName, false);
        }
    }

——–Third Way——–

**
<asp:CreateUserWizard ID=”CreateUserWizard1″ runat=”server” LoginCreatedUser=”false”
DisableCreatedUser=”true”         
         MailDefinition-BodyFileName=”signupmail.txt”
OnSendingMail=”CreateUserWizard1_OnSendingMail”>
        <WizardSteps>
            <asp:CreateUserWizardStep ID=”CreateUserWizardStep1″ runat=”server”>
            </asp:CreateUserWizardStep>
            <asp:CompleteWizardStep ID=”CompleteWizardStep1″ runat=”server”>
            </asp:CompleteWizardStep>
        </WizardSteps>
    </asp:CreateUserWizard>

**
signupmail.txt:

Thank you for signing up for a new account at my site. To complete your registration, please follow the link
below:

    http://www.mysite.com/authorise.aspx?u=<%NEWUSERID%>
**
protected void CreateUserWizard1_OnSendingMail(object sender, MailMessageEventArgs e)
    {
        // Create an SQL connection object
        using (SqlConnection conn = new
SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString))
        {
            // Create a command to get the user ID of the new user
            SqlCommand command = new SqlCommand(”SELECT m.UserId FROM aspnet_Membership m
INNER JOIN aspnet_Users u ON m.UserId = u.UserId WHERE u.LoweredUserName=
LOWER(@UserName) AND m.Email = @Email AND m.IsApproved = 0″,conn);

            // Add the parameters


            command.Parameters.AddWithValue(”@UserName”, MBTCreateUserWizard.UserName.ToString());
            command.Parameters.AddWithValue(”@Email”, MBTCreateUserWizard.Email.ToString());

            // Execute the query


            conn.Open();
            SqlDataReader reader = command.ExecuteReader();

            if (reader.HasRows)
            {
                // Read the next row
                reader.Read();

                string userid = reader[0].ToString();

                // Inject the user ID into the mail body


                e.Message.Body = e.Message.Body.Replace(”<%NEWUSERID%>”, userid);
            }

            // Close everything


            reader.Close();
            conn.Close();
        }
    }

**
In authorise.aspx Page

protected void Page_Load(object sender, EventArgs e)


    {
        // Get the user ID from the request string
        string userid = Request["u"];

        if (userid != null && userid != “”)


        {
            // Update the account to activate it
            try
            {
                using (SqlConnection conn = new
SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString))
                {
                    SqlCommand command = new SqlCommand(”UPDATE aspnet_Membership SET IsApproved=1
WHERE UserId=@UserId”, conn);

                    command.Parameters.AddWithValue(”@UserId”, userid);

                    conn.Open();
                    command.ExecuteNonQuery();
                    conn.Close();
                }

                // Success, inform or redirect


            }
            catch (SqlException se)
            {
                // Provide appropriate user feedback
            }
        }
        else
        {
            // Provide appropriate user feedback
        }
    }

You might also like