public static void LogEmail(Email email, bool delivered, string errorMessage) { SimpleAES aes = new SimpleAES(); string connectionString = "Server=localhost;Database=EmailProcessor;User ID=EmailProcessor;Password=6mVZsDYj4xeaynW2;Pooling=false"; using(IDbConnection dbcon = new MySqlConnection(connectionString)) { dbcon.Open(); using(IDbCommand dbcmd = dbcon.CreateCommand()) { string pattern = @"INSERT INTO Log (email_id, from_address, to_address, cc_address, bcc_address, header, body, delivered, error_message) VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', {7}, '{8}') ;"; string sql = String.Format( pattern, email.Id, email.From, EmailUtilities.ConvertStringArrayToString(email.To), EmailUtilities.ConvertStringArrayToString(email.Cc), EmailUtilities.ConvertStringArrayToString(email.Bcc), aes.EncryptToString(email.Header), aes.EncryptToString(email.Body), delivered, errorMessage ); dbcmd.CommandText = sql; dbcmd.ExecuteNonQuery(); } // Using entityframework had issue with mono machine.config /* using (var ctx = new LogContext()) { ctx.Log.Add(new Log() { EmailId = email.Id, FromAddress = email.From, ToAddress = ConvertStringArrayToString(email.To), CcAddress = ConvertStringArrayToString(email.Cc), BccAddress = ConvertStringArrayToString(email.Bcc), Header = aes.EncryptToString(email.Header), Body = aes.EncryptToString(email.Body), Delivered = delivered, ErrorMessage = errorMessage }); ctx.SaveChanges(); } */ } }
public static string ValidateEmail(Email email) { string isValid = ""; // From required & valid if(string.IsNullOrEmpty(email.From) || !IsValidEmailAddress(email.From)) { isValid += "From is invalid or missing "; } // To required & valid if(email.To.Length != 0) { foreach(string toEmail in email.To) { if(!IsValidEmailAddress(toEmail)) { isValid += string.Format("{0} is an invalid To address ", toEmail); } } } else { isValid += "To address is required "; } // Cc valid but not required if(email.Cc.Length != 0) { foreach(string ccEmail in email.Cc) { if(!IsValidEmailAddress(ccEmail)) { isValid += string.Format("{0} is an invalid CC address ", ccEmail); } } } // Bcc valid but not required if(email.Bcc.Length != 0) { foreach(string bccEmail in email.Bcc) { if(!IsValidEmailAddress(bccEmail)) { isValid += string.Format("{0} is an invalid BCC address ", bccEmail); } } } // Body required if(string.IsNullOrEmpty(email.Body)) { isValid += "Email body is required"; } // Success email is valid if(isValid == "") { isValid = "valid"; } return isValid; }
public static bool SendEmail(Email email) { var rand = new Random(); return rand.NextDouble() > 0.2; }