diff --git a/src/Authentication/Passwordless/PasswordlessEasyAuthProvider.cs b/src/Authentication/Passwordless/PasswordlessEasyAuthProvider.cs index c2a60b7..f2be5ee 100644 --- a/src/Authentication/Passwordless/PasswordlessEasyAuthProvider.cs +++ b/src/Authentication/Passwordless/PasswordlessEasyAuthProvider.cs @@ -93,7 +93,8 @@ private string MaskEmail(string email) return $"{maskedLocalPart}{domain}"; } - public async Task SendEmailAsync(Guid emailId, string subject, string sender, string to_emails, string msgHtml, string msgPlain, string sender_displayname=null) + public async Task SendEmailAsync(Guid emailId, string subject, string sender, string to_emails, string msgHtml, string msgPlain, + string sender_displayname=null, string to_cc_emails=null, Action configure=null, bool opentrack=false, bool clicktrack=false) { var options = JToken.FromObject(new { @@ -103,8 +104,8 @@ public async Task SendEmailAsync(Guid emailId, string subject, string sender, st }, filters = new { - opentrack = new { settings = new { enable = 0 } }, - clicktrack = new { settings = new { enable = 0 } } + opentrack = new { settings = new { enable = opentrack?1: 0 } }, + clicktrack = new { settings = new { enable = clicktrack?1:0 } } } }); @@ -116,7 +117,13 @@ public async Task SendEmailAsync(Guid emailId, string subject, string sender, st { mailMessage.To.Add(new MailAddress(email)); } - + if(!string.IsNullOrEmpty(to_cc_emails)) + { + foreach (var email in to_cc_emails.Split(',', ';')) + { + mailMessage.CC.Add(new MailAddress(email)); + } + } mailMessage.From = new MailAddress(sender,sender_displayname,Encoding.UTF8); var view = AlternateView.CreateAlternateViewFromString(msgHtml, null, MediaTypeNames.Text.Html); @@ -127,6 +134,8 @@ public async Task SendEmailAsync(Guid emailId, string subject, string sender, st mailMessage.Body = msgHtml; mailMessage.Headers.Add("X-SMTPAPI", options.ToString()); + configure?.Invoke(mailMessage); + _logger.LogInformation("Sending email to {email} with emailid {emailid} from {sender}", string.Join(",", to_emails.Split(',', ';').Select(email=> MaskEmail(email))), emailId, sender);