// Send message public async Task SendMessageAsync(MailMessageDto message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } // Create formatted message copy var newMessage = new MailMessageDto { Bcc = message.Bcc, BodyHtml = this.GetFormattedString(this.BodyHtmlFormat, message.BodyHtml), BodyText = this.GetFormattedString(this.BodyTextFormat, message.BodyText), Cc = message.Cc, CustomHeaders = message.CustomHeaders, From = message.From ?? this.DefaultFrom, ReplyTo = message.ReplyTo, Sender = message.Sender ?? this.DefaultSender, Subject = this.GetFormattedString(this.SubjectFormat, message.Subject), To = message.To, Attachments = message.Attachments }; // Defer to actual implementation to really send message await this.SendMessageAsyncInternal(newMessage); }
protected abstract Task SendMessageAsyncInternal(MailMessageDto message);