I would suggest track DeliveryNotification, and give them some time to make reply.
When the time exceeds, send another mail with high priority. This would enable you to confirm delivery of the mail(not sure if the recipient opened or read).
Sample:
try
{
using(MailMessage mail = new MailMessage())
{
mail.From = new MailAddress("username@somedomain.com");
mail.To.Add("recipient@yahoo.com");
mail.Subject = "This is an email";
mail.Body = "this is the body content of the email.";
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
mail.Headers.Add("Disposition-Notification-To", "<username@somedomain.com>");
SmtpClient smtp = new SmtpClient("18.204.1.5");
NetworkCredential netCredit = new NetworkCredential("username@somedomain.com", "yourpassword", "DOMAIN");
smtp.Credentials = netCredit;
smtp.Send(mail);
}
}
catch (FormatException ex)
{
}
catch (SmtpException ex)
{
}
Capture/track all exceptions and also track Delivery Failed messages and read reciepts from the inbox set for delivery notification/sender inbox.. Store them in DB/XML etc. Also track the reply for the mail. Now you can easily decide if you need send a warning mail using the data you have captured.
Thanks,
Kuthuparakkal