Send Mails Via .Net


Here is the code to send mails via .Net:-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net.Mail;
using System.Threading;

/// <summary>
/// Summary description for Emailing
/// </summary>
public class Emailing
{
private const int SmtpPort = 25;
private const string SmtpServer = "__SMTP SERVER NAME___";
private const string UserName = "__ USER NAME ___";
private const string Password = "__ PASSWORD __";
private const bool EnableSsl = false; //For Gmail Server set it to true

/// <summary>    
/// Sends the mail    
/// </summary>    
/// <param name="toEmailAddresses">';' seperated To email addresses.</param>    
/// <param name="fromEmailAddress">From email address.</param>    
/// <param name="subject">The subject.</param>    
/// <param name="body">The body.</param>    
/// <param name="mailAttachments">';' seperated mail attachments.</param>    
/// <param name="isBodyHTML">is body HTML.</param>   
public static void SendMail(string toEmailAddresses, string fromEmailAddress, string subject,
string body, string mailAttachments, bool isBodyHTML)
{
char[] splitter = { ';' };
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress(fromEmailAddress);
mailMessage.Subject = subject;
mailMessage.Body = body;
mailMessage.IsBodyHtml = isBodyHTML;

//Adding Multiple To Addresses
string[] mailAddresses = toEmailAddresses.Split(splitter);
foreach (string mailAddress in mailAddresses)
{
if (mailAddress.Length != 0)
{
mailMessage.To.Add(new MailAddress(mailAddress));
}
}

//Adding Multiple Attachments
string[] attachments = mailAttachments.Split(splitter);
foreach (string attachment in attachments)
{
if (attachment.Length != 0)
{
Attachment attachFile = new Attachment(attachment);
mailMessage.Attachments.Add(attachFile);
}
}

SmtpClient smtpClient = new SmtpClient();
try
{
smtpClient.Host = SmtpServer;
smtpClient.EnableSsl = EnableSsl;
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = UserName;
NetworkCred.Password = Password;
smtpClient.UseDefaultCredentials = true;
smtpClient.Credentials = NetworkCred;
smtpClient.Port = SmtpPort;
smtpClient.Send(mailMessage);
}
catch
{
mailMessage = null;
smtpClient = null;
}
}
/// <summary>    
/// Sends the mail on thread.    
/// </summary>    
/// <param name="toEmailAddresses">';' seperated To email addresses.</param>    
/// <param name="fromEmailAddress">From email address.</param>    
/// <param name="subject">The subject.</param>    
/// <param name="body">The body.</param>    
/// <param name="mailAttachments">';' seperated mail attachments.</param>    
/// <param name="isBodyHTML">is body HTML.</param>    
public static void SendMailOnThread(string toEmailAddresses, string fromEmailAddress, string subject,
string body, string mailAttachments, bool isBodyHTML)
{
Thread mailThread; mailThread = new System.Threading.Thread(delegate()
{
SendMail(toEmailAddresses, fromEmailAddress, subject, body, mailAttachments, isBodyHTML);
});
mailThread.IsBackground = true; mailThread.Start();

}

}


You can use this class like :-

//Send Simple Mail
Emailing.SendMail("sample@sample.com", "sample@sample.com", "Subject is test", "body is Test", "", true);

//Send mail on thread with two attachments
Emailing.SendMailOnThread("sample@sample.com", "sample@sample.com", "Subject is test", "body is Test", 
"c:\\setup.log;c:\\setup1.log;", true);

In case you want to send emails through Gmail server, then use these settings:-
private const int SmtpPort = 465;//if 465 do not work then try 587
private const string SmtpServer = "smtp.gmail.com";
private const string UserName = "__ USER NAME ___";
private const string Password = "__ PASSWORD __";
private const bool EnableSsl = true;