Friday, September 18, 2009

ASP.Net ല്‍ കൂടി ഇമെയില്‍ അയിക്കുന്ന രീതി:: send email in asp.net


CONTACT US പേജില്‍കൂടി ഒരു ഇമെയില്‍ ഐഡിയിലേക്ക് മെയിലുകള്‍ അയിക്കുന്ന പ്രോഗ്രാമാണ് താഴെ കൊടുക്കുന്നത്

താഴെകാണുന്ന രീതിയില്‍ ഒരു ഫോം ഡിസൈന്‍ ചെയ്യുക.
ഫോം ഡിസൈല്‍ ചെയ്യുമ്പോള്‍ താഴെപറയുന്ന കാര്യങ്ങള്‍ ശ്രദ്ധിക്കുക.

1. വാലിഡേഷന്‍ കണ്‍‌ട്രോളുകളുടെ പ്രോപ്പര്‍ട്ടിയിലെ Display : None ആക്കി കൊടുക്കുക.
2. വാലിഡേഷന്‍ കണ്‍‌ട്രോളുകളുടെയും മാന്‍ഡേറ്ററി ഫീല്‍ഡുകളുടേയും സബ്‌മിറ്റ് ബട്ടണിന്റേയും പ്രോപ്പര്‍ട്ടിയില്‍ Validation Group : 1 ആക്കി കൊടുക്കുക.
3. ValidationSummary പ്രോപ്പര്‍ട്ടിയില്‍ Show Message Box : True എന്നും Show Summary : False എന്നും കൊടുക്കുക.
4. മെസേജ് ടെക്സ്റ്റ് ബോക്സിന്റെ TextMode : MultiLine ആക്കുക.

:: കണ്‍‌ട്രോളുകള്‍ ::
1. txtName
2. RFValidatorName
ControlToValidate="txtName"
Display="None"
ErrorMessage="Name field is blank"
ValidationGroup="1"
3. TxtComName
4. txtEmail
5. RFValidatorEmail
ControlToValidate="txtEmail"
Display="None"
ErrorMessage="Email-ID field is blank"
ValidationGroup="1"
6. REValidatorEmail
ControlToValidate="txtEmail"
Display="None"
ErrorMessage="invalid email id"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" (Internet E-mail address select ചെയ്യുക)
ValidationGroup="1"
7. txtTelephone
8. RFValidatorPhNo
ControlToValidate="txtTelephone"
Display="None"
ErrorMessage="Phone Field is blank"
ValidationGroup="1"
9. REValidatorPhNo
ControlToValidate="txtTelephone"
Display="None"
ErrorMessage="only numbers for mobile number"
ValidationExpression="\d*" ( നമ്പരുകള്‍ മാത്രം എന്റെര്‍ ചെയ്യാന്‍ വേണ്ടി)
ValidationGroup="1"
10. txtMessage
11. RequiredFieldValidator1
ControlToValidate="txtMessage"
Display="None"
ErrorMessage="Message field is blank"
ValidationGroup="1"
12. lblMsg
13. ValidationSummary1
ShowMessageBox="True"
ShowSummary="False"
ValidationGroup="1"
14. btnSubmit
ValidationGroup="1"


:: കോഡ് വിന്‍ഡോ :: ContactUs.aspx.cs

താഴെപറയുന്ന നെയിംസ്പേസുകള്‍ ഉപയോഗിക്കുക.
using System.Net.Mail;
using System.Text;
using System.Collections.Generic;

:: ഇവന്റുകള്‍ ::

protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
int _port = Convert.ToInt32(ConfigurationManager.AppSettings["PORT"]);
MailService.clsMail m = new MailService.clsMail(ConfigurationManager.AppSettings["SMTP"], _port, ConfigurationManager.AppSettings["FROMEMAIL"],
ConfigurationManager.AppSettings["FROMPWD"]);
m.To = new System.Net.Mail.MailAddress(ConfigurationManager.AppSettings["TOEMAIL"]);
m.From = new System.Net.Mail.MailAddress(this.txtEmail.Text);
m.Subject = "Mail from My website";
m.Body += "NAME : " + this.txtName.Text + "
";
m.Body += "Company Name : " + this.TxtComName.Text + "
";
m.Body += "Email : " + this.txtEmail.Text + "
";
m.Body += "Phone Number : " + this.txtTelephone.Text + "
";
m.Body += "Message : " + this.txtMessage.Text + "
";
bool b = m.SendMail();
if (b == true)
{
this.lblMsg.Text = "Mail send successfully.";fieldsClear();
}
else
{
this.lblMsg.Text = "Mail sending failed.
Please try after some time.
We regret for the inconvenience.";
}
}
protected void btnClear_Click(object sender, EventArgs e)
{
fieldsClear();
}

:: മെതേഡ് ::
void fieldsClear()
{
txtName.Text = "";
TxtComName.Text = "";
txtEmail.Text = "";
txtTelephone.Text = "";
txtMessage.Text = "";
}



:: ക്ലാസ് നിര്‍മ്മാണം ::
btnSubmit ലെ കോഡ് കൊടുക്കുന്നതിനുമുമ്പ് MailService എന്ന നെയിംസ്പേസില്‍ clsMail എന്നൊരു ക്ലാസ് ഉണ്ടാക്കണം.

namespace MailService
{

public class clsMail
{

#region "Fields"

MailMessage Mail = null;
public MailAddress From = null;
public MailAddress To = null;
public MailAddress CC = null;
public MailAddress BCC = null;
public string Subject = "";
public string Host = "";
public int Port = 0;
public string UserName = "";
public string Password = "";
public string Body = "";

#endregion

#region "Constructors"

public clsMail(string _host, int _port, string _username, string _password)
{
this.Host = _host;
this.Port = _port;
this.UserName = _username;
this.Password = _password;
}

#endregion

#region "Method"

public bool SendMail()
{
Mail = new MailMessage();
SmtpClient smtp = new SmtpClient();
try
{
Mail.To.Add(this.To);
Mail.From = this.From;
Mail.Subject = this.Subject;
Mail.Body = this.Body;
Mail.IsBodyHtml = true;
smtp.Host = this.Host;
smtp.Port = 587;
smtp.Credentials = new System.Net.NetworkCredential(this.UserName, this.Password);
smtp.EnableSsl = true;
smtp.Timeout = 50000;
smtp.Send(Mail);
return true;
}
catch (Exception ex)
{
return false;
}
}

#endregion

}

}



:: Web.Config ::
Web.Config file ല്‍ താഴെ പറയുന്ന കോഡ് appSettings ല്‍ കൊടുക്കണം.


smtp.gmail.com"/>
465"/>
gmailid@gmail.com"/>
gmailaccountpassword"/>
tomailid@yahoo.co.in"/>

ഏത് ജിമെയില്‍ അക്കൌണ്ടില്‍ നിന്നാണോ മെയില്‍ പോകേണ്ടത് ആമെയില്‍ ഐഡിയാണ് FROMEMAIL ല്‍ കൊടുക്കേണ്ടത്. ഈ മെയില്‍ ഐഡിയുടെ പാസ്‌വേര്‍ഡ് തന്നെ

FROMPWD ല്‍ കൊടുക്കണം. ഏത് മെയില്‍ അക്കൌണ്ടിലേക്കാണ് മെയില്‍ പോകേണ്ടത് ആ മെയില്‍ ഐഡി TOEMAIL ലിലും കൊടുക്കണം.

പ്രോഗ്രാമിന്റെ ഔട്ട് പുട്ട് :

പ്രോഗ്രാം വഴി അയിച്ച മെയില്‍ വരുന്നത് ഇങ്ങനെ :