public async Task CustomMailerHasAttachments() { async Task SendMailCustom(string message, string subject, IEnumerable <MailRecipient> to, MailRecipient from, MailRecipient replyTo, IEnumerable <MailRecipient> cc, IEnumerable <MailRecipient> bcc, IEnumerable <Attachment> attachments) { Assert.Equal(2, attachments.Count()); Assert.Equal("Attachment 2", attachments.Skip(1).Single().Name); await Task.CompletedTask; }; var mailer = new CustomMailer( null, // We aren't rendering anything, so it's null. SendMailCustom, null ); await mailer.SendAsync( new GenericHtmlMailable() .Subject("test") .From("*****@*****.**") .To("*****@*****.**") .Html("test") .Attach(new Attachment { Bytes = new byte[] { }, Name = "Attachment 1" }) .Attach(new Attachment { Bytes = new byte[] { }, Name = "Attachment 2" }) ); }
/// <summary> /// Register Coravel's mailer using the Custom Mailer. /// </summary> /// <param name="services"></param> /// <param name="sendMailAsync"></param> public static void AddCustomMailer(this IServiceCollection services, IConfiguration config, CustomMailer.SendAsyncFunc sendMailAsync) { var globalFrom = GetGlobalFromRecipient(config); RazorRenderer renderer = RazorRendererFactory.MakeInstance(config); var mailer = new CustomMailer(renderer, sendMailAsync, globalFrom); services.AddSingleton <IMailer>(mailer); }
public async Task CustomMailer_GlobalFrom() { async Task SendMailCustom(string message, string subject, IEnumerable <MailRecipient> to, MailRecipient from, MailRecipient replyTo, IEnumerable <MailRecipient> cc, IEnumerable <MailRecipient> bcc) { Assert.Equal("*****@*****.**", from.Email); Assert.Equal("Global", from.Name); await Task.CompletedTask; }; var mailer = new CustomMailer( null, // We aren't rendering anything, so it's null. SendMailCustom, new MailRecipient("*****@*****.**", "Global") ); await mailer.SendAsync( new GenericHtmlMailable() .Subject("test") .From("*****@*****.**") // Shoudl be ignored due to global "from" .To("*****@*****.**") .Html("test") ); }
public async Task CustomMailer_Render() { async Task SendMailCustom(string message, string subject, IEnumerable <MailRecipient> to, MailRecipient from, MailRecipient replyTo, IEnumerable <MailRecipient> cc, IEnumerable <MailRecipient> bcc) { await Task.CompletedTask; }; var renderer = RazorRendererFactory.MakeInstance(new ConfigurationBuilder().Build()); var mailer = new CustomMailer( renderer, SendMailCustom ); var htmlMessage = await mailer.RenderAsync( new GenericHtmlMailable() .Subject("test") .From("*****@*****.**") // Shoudl be ignored due to global "from" .To("*****@*****.**") .Html("<html></html>") ); Assert.Equal("<html></html>", htmlMessage); }
public async Task CustomMailerSucessful() { async Task SendMailCustom(string message, string subject, IEnumerable <MailRecipient> to, MailRecipient from, MailRecipient replyTo, IEnumerable <MailRecipient> cc, IEnumerable <MailRecipient> bcc) { Assert.Equal("test", subject); Assert.Equal("*****@*****.**", from.Email); Assert.Equal("*****@*****.**", to.First().Email); await Task.CompletedTask; }; var mailer = new CustomMailer( null, // We aren't rendering anything, so it's null. SendMailCustom, null ); await mailer.SendAsync( new GenericHtmlMailable() .Subject("test") .From("*****@*****.**") .To("*****@*****.**") .Html("test") ); }