Search code examples
asp.netformsemailbuttonsubmission

I need to create a button that sends form information to email on button click event


I'm new to everything programming and I'm in the process of creating a web form for my personal business that submits the form details to email on a button click. I've done a search, and I haven't quite been able to find exactly what I'm looking for. I'm not sure what common protocol is when it comes to web form submission. I would rather not have the information on a database, as it is only temporary. Though it might be handy to have a name and phone number submitted to my database on button click.

The actual email doesn't need to be formatted well, I only need information from a few text boxes. I'm using TextBox1 - TextBox6, if that helps.

Thanks much,


Solution

  • You'll need to use the System.Net.Mail class to send emails in C#. The mail server settings are set up in your web.config file under the system.net mailsettings section. For example, email sent through a GMail account would use the following settings:

    <system.net>
        <mailSettings>
          <smtp from="[email_address_here]">
            <network host="smtp.gmail.com" port="587" userName="[username]" password="[password]" enableSsl="true" />
          </smtp>
        </mailSettings>
    </system.net>
    

    Then, on the button click event, which you can access in the Events section of the Button's properties in Visual Studio, you would put the code to gather the form information and send the email, which would look something like:

    //Initiate the mail client.
    SmtpClient mail = new SmtpClient();
    
    //You would probably get the to email from your form using TextBox1.Text or something similar, or use your own to email.
    MailMessage mm = new MailMessage("from_email", "to_email");
    
    //Set the message properties, using your TextBox values to format the body of the email.
    //You can use string format to insert multiple values into a string based on the order of {0}, {1}, {2} etc.
    mm.Body = string.Format("Hi {0}, thanks for emailing me.", TextBox2.Text);
    mm.IsBodyHtml = true; //Or false if it isn't a HTML email.
    mm.Subject = "Your Subject Here";
    
    //Send the email.
    mail.Send(mm);
    

    You will also need to have the line using System.Net.Mail; at the top of your code file to use the SMTPClient.