Introduction
Well the purpose of the user control is quite simple. I have seen a series of
publications all over the net for sending Emails using ASP.Net. I would have
loved to find a user control that I could just drop on my page, enter minimum
required fields and have the control do the rest of it for me.
That's what I finally feel I achieved with this user control. Now you can judge
it and if you like it, you are free to use it, modify it.
Background
I tried to keep this as simple as possible but if you are trying to recreate
what I did, you will need some basic experience in AJAX Extensions. You will
obviously need to know what SMTP servers and ports mean.
The user control assumes that you will be adding this control on your website
and the sole purpose is to receive emails from visitors. So the control will be
using your credentials (email ID and password) to authenticate the sender of the
email. For this reason, I removed the capability to attach files to the email.
Note: I do not recommend allowing others to send emails from your site
using this user control. The change that need to be done to allow this is quite
simple but the implications are numerous and generally not advisable.
Using the code
To use this user control you will have to perform the following simple steps.
Set up your project to use the control
Register the user control on your web form
Add the user control to your web form and configure it
Set up your project to use the control
First step is to create a folder called 'Controls' in your website. Copy the included ".ascx" control to this folder. Also add the "AjaxControlToolkit.dll" file to the 'bin' directory to be able to use the validators.
Register the user control on your web form
Then you need to add the reference to the User control on your page using the following piece of code:
<%@Register src="Controls/EmailControl.ascx"tagname="EmailControl"tagprefix="uc1"%>
Add the use Control to your web form and configure it.
Option 1
Use the web.config file to provide the information needed for the email control.
Add the control to your aspx page with the following code:
<uc1:EmailControl
ID="EmailControl1"
runat="server"
/>
Setup the control in the web.config file with the following information:
<appSettings>
<add
key="mailServerSSLEnabled"
value=""/>
<add
key ="mailServerName"
value=" "/>
<add
key="mailServerPort"
value=""/>
<add
key="mailID"
value=" "/>
<add
key="mailIDPassword"
value=" "/>
</appSettings>
Option 2
Set up the mail control in the aspx page itself.
<uc1:EmailControl
ID="EmailControl1"
runat="server"
mailServerSSLEnabled
=" "
mailServerName
=" "
mailServerPort
=" "/>
Setup the control in the web.config file with the following information:
<appSettings>
<add
key="mailID"
value=" "/>
<add
key="mailIDPassword"
value=" "/>
</appSettings>
My personal preference is to include the control information in the web.config
file and encrypting the information. But then you would have to modify the web
control code to handle the encryption and decryption (not included in this
control).
Points of Interest
The control as provided does not include functionality to encrypt and decrypt
the configuration information. As long as you are using this control on your
website and you have complete control of the data provided for the control, its
ok to use the control as is but when you are placing this file on a web server,
I strongly recommend using the encryption and decryption logic using the
following examples
http://msdn.microsoft.com/en-us/library/zhhddkxy.aspx
http://msdn.microsoft.com/en-us/library/zhhddkxy.aspx