Example #1
0
        public async Task EmailSendAsync(string aFrom, string aTo, string aSubject, string aMessage,
            IEnumerable<string> aAttachments = null, bool aReadConfirmation = false, bool aReceiptConfirmation = false)
        {
            using (var mail = new MailMessage())
            {
                if (aReadConfirmation)
                    mail.Headers.Add("Disposition-Notification-To", aFrom);
                if (!IsEmailValid(aFrom))
                    throw new ArgumentException("Sender address \"{aFrom}\" is not valid");
                mail.From = new MailAddress(aFrom.Trim());
                if (!IsEmailValid(aTo))
                    throw new ArgumentException("Recipient address \"{aTo}\" is not valid");
                mail.To.Add(aTo.Trim());
                mail.Subject = aSubject;
                mail.Body = aMessage;
                if (aAttachments != null)
                    foreach (var attachment in aAttachments)
                        mail.Attachments.Add(new Attachment(attachment));
                if (aReceiptConfirmation)
                    mail.DeliveryNotificationOptions = DeliveryNotificationOptions.Delay |
                                                       DeliveryNotificationOptions.OnFailure |
                                                       DeliveryNotificationOptions.OnSuccess;

                    using (var smtpClient = new SmtpClient())
						await smtpClient.SendMailExAsync(mail);
            }
        }