ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
SmtpClient client = new SmtpClient();
try
{
client.Host = Server;
client.Port = (int)Port;
if (Username != "")
client.Credentials = new NetworkCredential(Username,Password);
client.EnableSsl = UseSSL;
using(MailMessage mail = new MailMessage())
{
mail.From = new MailAddress(From);
mail.To.Add(To);
mail.Subject = Subject;
mail.IsBodyHtml = BodyIsHTML;
mail.Body = Body;
if (CC != "")
mail.CC.Add(CC);
foreach(DataRow dr in Attachments.Rows)
{
string file = dr["Path"].ToString();
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
ContentDisposition dis = data.ContentDisposition;
dis.CreationDate = File.GetCreationTime(file);
dis.ModificationDate = File.GetLastWriteTime(file);
dis.ReadDate = File.GetLastAccessTime(file);
mail.Attachments.Add(data);
}
client.Send(mail);
}
}
catch(Exception ex)
{
string msg = ex.Message;
if(ex.InnerException != null) {
msg += " - " + ex.InnerException.Message;
}
throw new Exception(msg);
}
finally
{
IDisposable disposableClient = client as IDisposable;
if (disposableClient!=null)
disposableClient.Dispose();
}