Example #1
0
 /// <inheritdoc />
 public Task <Response> SendAsync(
     string toAddress,
     string subject,
     string body,
     bool isBodyHtml,
     IEMailExtraParams emailExtraParams,
     CancellationToken cancellationToken = default)
 {
     return(SendAsync(toAddress, subject, body, isBodyHtml, cancellationToken));
 }
        public Task <Response> SendAsync(
            string toAddress,
            string subject,
            string body,
            bool isBodyHtml,
            IEMailExtraParams emailExtraParams,
            CancellationToken cancellationToken = default)
        {
            if (String.IsNullOrWhiteSpace(toAddress))
            {
                throw new ArgumentNullException(nameof(toAddress));
            }
            if (String.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }
            if (String.IsNullOrWhiteSpace(body))
            {
                throw new ArgumentNullException(nameof(body));
            }
            if (emailExtraParams == null)
            {
                throw new ArgumentNullException(nameof(emailExtraParams));
            }

            if (!(emailExtraParams is MailgunEmailExtraParams mailGunEMailExtraParams))
            {
                throw new ArgumentException($"Only {typeof(MailgunEmailExtraParams)} is supported for this sender.", nameof(emailExtraParams));
            }

            var user      = mailGunEMailExtraParams.MailgunUser ?? _mailgunEmailOptions.MailgunUser;
            var apiKey    = mailGunEMailExtraParams.MailgunApiKey ?? _mailgunEmailOptions.MailgunApiKey;
            var domain    = mailGunEMailExtraParams.MailgunDomain ?? _mailgunEmailOptions.MailgunDomain;
            var emailFrom = mailGunEMailExtraParams.EmailFrom ?? _mailgunEmailOptions.EmailFrom;
            var region    = mailGunEMailExtraParams.MailgunRegion ?? _mailgunEmailOptions.MailgunRegion;

            return(SendAsync(
                       toAddress,
                       subject,
                       body,
                       isBodyHtml,
                       user,
                       apiKey,
                       domain,
                       emailFrom,
                       region,
                       _mailgunEmailOptions.ReplyTo,
                       cancellationToken));
        }
        public Task <Response> SendAsync(string toAddress, string subject, string body, bool isBodyHtml, IEMailExtraParams emailExtraParams, CancellationToken cancellationToken = default)
        {
            if (String.IsNullOrWhiteSpace(toAddress))
            {
                throw new ArgumentNullException(nameof(toAddress));
            }
            if (String.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }
            if (String.IsNullOrWhiteSpace(body))
            {
                throw new ArgumentNullException(nameof(body));
            }

            if (emailExtraParams == null)
            {
                throw new ArgumentNullException(nameof(emailExtraParams));
            }
            if (!(emailExtraParams is SmtpEMailExtraParams smtpEMailExtraParams))
            {
                throw new ArgumentException($"Only {typeof(SmtpEMailExtraParams)} is supported.", nameof(emailExtraParams));
            }

            var senderName = smtpEMailExtraParams.SenderName?.Trim() ?? _emailOptions.SenderName.Trim();
            var emailFrom  = smtpEMailExtraParams.EMailFrom?.Trim() ?? _emailOptions.EMailFrom.Trim();
            var replyTo    = smtpEMailExtraParams.ReplyTo?.Trim() ?? _emailOptions.ReplyTo?.Trim();

            return(SendAsync(toAddress, subject, body, isBodyHtml, senderName, emailFrom, replyTo, cancellationToken));
        }