示例#1
0
        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);
        }
示例#3
0
        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")
                );
        }
示例#4
0
        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);
        }
示例#5
0
        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")
                );
        }