Beispiel #1
0
        public EmailNotificationResponse Send(EmailNotificationRequest request)
        {
            var message = _postmarkMessageFactory.Create(request);

            var response = AsyncHelper.RunSync(() => _postmarkClient.SendMessageAsync(message));

            return(new EmailNotificationResponse
            {
                IsSent = response.Status == PostmarkStatus.Success,
                Message = response.ErrorCode.ToString(CultureInfo.InvariantCulture)
            });
        }
Beispiel #2
0
        public async Task SendNotifyEnquireRemedy(ProductBaseDto T, string email)
        {
            var message = new TemplatedPostmarkMessage
            {
                To            = email,
                From          = "*****@*****.**",
                TemplateId    = 15937570,
                TemplateModel = new Dictionary <string, object>
                {
                    { "username", email },
                    { "remedyname", T.Name },
                    { "brand", dc.Brand.Where(o => o.BrandId == T.BrandId).First().Name },
                    { "registration", T.Registration },
                    { "formulation", T.Formulation },
                    { "concentration", T.Concentration },
                    { "active", dc.ProductActiveIngredient.Include(o => o.ActiveIngredient).Where(o => o.ProductBaseId == T.ProductBaseId).First().ActiveIngredient.Name },
                    { "enquiredURL", "http://farmboek.dankospark.co.za/details/brand/" + T.BrandId }
                }
            };

            var client     = new PostmarkClient("20222232-ba77-4976-b1c5-921816baa7e2");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Console.WriteLine(sendResult.Status);
            }
            else
            {
                Console.WriteLine(sendResult.Status);
            }
        }
        public async Task EmailToProviderAsync(EnquiryDto T, Vacation stock, Resort resort, Supplier supplier, UnitSizes unitSize)
        {
            var message = new TemplatedPostmarkMessage
            {
                To            = supplier.Email,
                From          = EmailFrom,
                TemplateId    = 13249489,
                TemplateModel = new Dictionary <string, object>
                {
                    { "provider", supplier.Description },
                    { "resort", resort.Description },
                    { "arrival", stock.Arrival.Date.ToString("dd/MM/yyyy") },
                    { "nights", stock.Nights },
                    { "unitSize", unitSize.Description },
                    { "product_name", "Holiday Booker" },
                    { "company_name", "Holiday Booker" }
                }
            };

            var client     = new PostmarkClient("ba4b7707-54c8-49d7-83d5-e215483fe37c");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Console.WriteLine(sendResult.Status);
            }
            else
            {
                Console.WriteLine(sendResult.Status);
            }
        }
Beispiel #4
0
        public async Task <bool> SendEmail(EmailModel emailModel)
        {
            var message = new PostmarkMessage()
            {
                To            = emailModel.Recipient,
                From          = emailModel.Sender,
                TrackOpens    = emailModel.TrackOpens,
                Subject       = emailModel.Subject,
                TextBody      = emailModel.TextBody,
                HtmlBody      = emailModel.HtmlBody,
                MessageStream = emailModel.MessageStream,
                Tag           = emailModel.Tag
            };

            var client = new PostmarkClient(API_KEY);

            try
            {
                var sendResult = await client.SendMessageAsync(message);

                System.Threading.Thread.Sleep(500);
                if (sendResult.Status == PostmarkStatus.Success)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (PostmarkValidationException)
            {
                return(false);
            }
        }
        public override Task SendEmailAsync(string email, string subject, string message)
        {
            var postmarkServerToken = Settings.Password;
            var originEmailAddress  = Settings.FromEmail;

            if (!string.IsNullOrWhiteSpace(postmarkServerToken))
            {
                var emailMessage = new PostmarkMessage()
                {
                    From     = originEmailAddress,
                    To       = email,
                    Subject  = subject,
                    TextBody = message,
                    HtmlBody = message
                };

                var client = new PostmarkClient(postmarkServerToken);
                return(client.SendMessageAsync(emailMessage));
            }
            else
            {
                Logger.LogError("Postmark server token is not configured, so we're not able to send emails.");
                return(Task.FromResult(0));
            }
        }
        public void SendCancellationReciept(string name, string email, string endDate, string departmentName)
        {
            var message = new TemplatedPostmarkMessage
            {
                From          = FROM_EMAIL,
                To            = email,
                TemplateId    = Config.OutboundEmailServerConfig.PostmarkCancelRecieptTemplateId,
                TemplateModel = new Dictionary <string, object> {
                    { "action_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}/User/Subscription" },
                    { "subscriptions_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}/User/Subscription" },
                    { "feedback_url", LIVECHAT_URL },
                    { "help_url", HELP_URL },
                    { "trial_extension_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}/User/Subscription" },
                    { "export_url", "" },
                    { "plans_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}/Home/Pricing" },
                    { "close_account_url", HELP_URL },
                },
            };

            var client   = new PostmarkClient(Config.OutboundEmailServerConfig.PostmarkApiKey);
            var response = client.SendMessageAsync(message).Result;

            if (response.Status != PostmarkStatus.Success)
            {
                //Console.WriteLine("Response was: " + response.Message);
            }
        }
Beispiel #7
0
        public Task SendEmailAsync(string email, string subject, string message)
        {
            var postmarkServerToken = configurationRootService[Config.POSTMARK_SERVER_TOKEN];
            var originEmailAddress  = configurationRootService[Config.EMAIL_FROM_ADDRESS];

            if (!string.IsNullOrWhiteSpace(postmarkServerToken))
            {
                var emailMessage = new PostmarkMessage()
                {
                    From     = originEmailAddress,
                    To       = email,
                    Subject  = subject,
                    TextBody = message,
                    HtmlBody = message
                };

                var client = new PostmarkClient(postmarkServerToken);
                return(client.SendMessageAsync(emailMessage));
            }
            else
            {
                logger.LogWarning("Postmark server token is not configured, so we're not able to send emails.");
                return(Task.FromResult(0));
            }
        }
Beispiel #8
0
    /*==========================================================================================================================
    | SEND
    \-------------------------------------------------------------------------------------------------------------------------*/
    /// <summary>
    ///   Sends the <see cref="MailMessage"/> via SendGrid.
    /// </summary>
    public async Task SendAsync(MailMessage mailMessage) {

      /*------------------------------------------------------------------------------------------------------------------------
      | Assemble email
      \-----------------------------------------------------------------------------------------------------------------------*/
      PostmarkMessage message   = new PostmarkMessage {
        To                      = String.Join(", ", mailMessage.To.Select(x => x.Address)),
        From                    = mailMessage.From.Address,
        Subject                 = mailMessage.Subject,
        TrackOpens              = true
      };

      // Conditionally set body
      if (mailMessage.IsBodyHtml) {
        message.HtmlBody        = mailMessage.Body;
      }
      else {
        message.TextBody        = mailMessage.Body;
      }

      /*------------------------------------------------------------------------------------------------------------------------
      | Send email
      \-----------------------------------------------------------------------------------------------------------------------*/
      var response              = await _smptClient.SendMessageAsync(message);

      /*------------------------------------------------------------------------------------------------------------------------
      | Validate response
      \-----------------------------------------------------------------------------------------------------------------------*/
      if (response.Status != PostmarkStatus.Success) {
        throw new SmtpException(response.Message);
      }

    }
Beispiel #9
0
        public static async Task <EmailResponse> SendCancellationEmail(Attendee _Attendee, HtmlTag html)
        {
            var message = new PostmarkMessage()
            {
                To         = _Attendee.EmailAddress,
                From       = "*****@*****.**",
                TrackOpens = true,
                Subject    = "Windforce Developer Conference Cancellation",
                HtmlBody   = html.Text,
                Tag        = "Windforce Developer Conference Cancellation",
            };
            var client     = new PostmarkClient(_EmailAPIKey);
            var sendResult = await client.SendMessageAsync(message);

            EmailResponse EmailSendResponse = EmailResponse.Failure;

            if (sendResult.Status == PostmarkStatus.Success)
            {
                EmailSendResponse = EmailResponse.Success;
            }
            else
            {
                EmailSendResponse = EmailResponse.Failure;
            }
            return(EmailSendResponse);
        }
        public async Task notify(ArbitrageData T, string pEmail)
        {
            try
            {
                var message = new TemplatedPostmarkMessage
                {
                    From          = "*****@*****.**",
                    To            = pEmail,
                    TemplateAlias = "bitcoinArbitrage",
                    TemplateModel = new Dictionary <string, object> {
                        { "percent", Convert.ToString(T.PercentageProfitBeforeCost * 100) },
                        { "date", Convert.ToString(T.DateCaptured) },
                        { "krakenprice", Convert.ToString(T.KrakenXBTEUR) },
                        { "lunoprice", Convert.ToString(T.LunoXBTZAR) },
                        { "eurotozar", Convert.ToString(T.EURZAR) }
                    },
                };

                var client = new PostmarkClient("ba0d1e9f-0b0b-442f-a350-9504a5015caf");

                var response = await client.SendMessageAsync(message);

                if (response.Status != PostmarkStatus.Success)
                {
                    Console.WriteLine("Response was: " + response.Message);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Email fail: " + e.Message);
            }
        }
Beispiel #11
0
        public async void SendEmail(string to)
        {
            var mailHeader = new MailHeader("X-CUSTOM-HEADER", "Header content");

            var headers = new HeaderCollection();

            headers.Add(mailHeader);

            var message = new PostmarkMessage()
            {
                To         = to,
                From       = "*****@*****.**",
                TrackOpens = true,
                Subject    = "A complex email",
                TextBody   = "Plain Text Body",
                HtmlBody   = "<html><body><img src=\"cid:embed_name.jpg\"/></body></html>",
                Tag        = "New Year's Email Campaign",
                Headers    = headers
            };

            var imageContent = File.ReadAllBytes("test.jpg");

            message.AddAttachment(imageContent, "test.jpg", "image/jpg", "cid:embed_name.jpg");

            var client     = new PostmarkClient("6cce5c93-a59e-4f32-b37d-c71525956b6b");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success) /* Handle success */ } {
Beispiel #12
0
        public async Task SendCouldNotFindUser(string username)
        {
            var message = new TemplatedPostmarkMessage
            {
                To            = username,
                From          = "*****@*****.**",
                TemplateId    = 15914912,
                TemplateModel = new Dictionary <string, object>
                {
                    { "username", username }
                }
            };

            var client     = new PostmarkClient("20222232-ba77-4976-b1c5-921816baa7e2");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Console.WriteLine(sendResult.Status);
            }
            else
            {
                Console.WriteLine(sendResult.Status);
            }
        }
Beispiel #13
0
        public async Task SendResetPasswordEmail(string username, string resetToken)
        {
            var message = new TemplatedPostmarkMessage
            {
                To            = username,
                From          = "*****@*****.**",
                TemplateId    = 15914723,
                TemplateModel = new Dictionary <string, object>
                {
                    { "username", username },
                    //   { "action_url",  "http://farmboek.dankospark.co.za/resetpassword/"+ username + "/" + resetToken}
                    { "action_url", "http://localhost:4200/resetpassword/" + username + "/" + resetToken.Replace('/', '_') }
                }
            };

            var client     = new PostmarkClient("20222232-ba77-4976-b1c5-921816baa7e2");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Console.WriteLine(sendResult.Status);
            }
            else
            {
                Console.WriteLine(sendResult.Status);
            }
        }
Beispiel #14
0
        public async Task SendNotifyAdmin(string type, string productorremedy, string name, string lastname, string idnumber, string cell, string email, string brand, string action_url)
        {
            var message = new TemplatedPostmarkMessage
            {
                To            = "*****@*****.**",
                From          = "*****@*****.**",
                TemplateId    = 16196502,
                TemplateModel = new Dictionary <string, object>
                {
                    { "name", name },
                    { "lastname", lastname },
                    { "type", type },
                    { "productorremedy", productorremedy },
                    { "idnumber", idnumber },
                    { "brand", brand },
                    { "cell", cell },
                    { "email", email },
                    { "action_url", action_url }
                }
            };

            var client     = new PostmarkClient("20222232-ba77-4976-b1c5-921816baa7e2");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Console.WriteLine(sendResult.Status);
            }
            else
            {
                Console.WriteLine(sendResult.Status);
            }
        }
Beispiel #15
0
        public async Task SendNotifyEnquireProblemAndService(string email, string brand, string entry, int id)
        {
            var message = new TemplatedPostmarkMessage
            {
                To            = email,
                From          = "*****@*****.**",
                TemplateId    = 15925178,
                TemplateModel = new Dictionary <string, object>
                {
                    { "name", email },
                    { "entryName", entry },
                    { "brandName", brand },
                    { "enquiredURL", "http://farmboek.dankospark.co.za/details/brand/" + id }
                }
            };

            var client     = new PostmarkClient("20222232-ba77-4976-b1c5-921816baa7e2");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Console.WriteLine(sendResult.Status);
            }
            else
            {
                Console.WriteLine(sendResult.Status);
            }
        }
        //New Invoice Generated
        public async Task NewInvoiceGenerated(string invoiceNum, int stockId)
        {
            var message = new TemplatedPostmarkMessage
            {
                To            = "*****@*****.**",
                From          = EmailFrom,
                TemplateAlias = "newInvoice",
                TemplateModel = new Dictionary <string, object>
                {
                    { "invoiceNum", invoiceNum },
                    { "stockId", stockId },
                }
            };

            var client     = new PostmarkClient("ba4b7707-54c8-49d7-83d5-e215483fe37c");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Console.WriteLine(sendResult.Status);
            }
            else
            {
                Console.WriteLine(sendResult.Status);
            }
        }
        public async Task SendNewEmailAsync(string email)
        {
            var message = new TemplatedPostmarkMessage
            {
                To            = EmailFrom,
                From          = EmailFrom,
                TemplateAlias = "newEmail",
                TemplateModel = new Dictionary <string, object>
                {
                    { "email", email }
                }
            };

            var client     = new PostmarkClient("ba4b7707-54c8-49d7-83d5-e215483fe37c");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Console.WriteLine(sendResult.Status);
            }
            else
            {
                Console.WriteLine(sendResult.Status);
            }
        }
        public async Task EmailToClientAsync(EnquiryDto T, Vacation stock, Resort resort, Supplier supplier, UnitSizes unitSize)
        {
            var message = new TemplatedPostmarkMessage
            {
                To            = T.Email,
                From          = EmailFrom,
                TemplateId    = 20752183,
                TemplateModel = new Dictionary <string, object>
                {
                    { "name", T.Name },
                    { "resort", resort.Description },
                    { "date", stock.Arrival.Date.ToString("dd/MM/yyyy") },
                    { "nights", stock.Nights },
                    { "unitsize", unitSize.Description },
                    { "priceToPay", stock.Price2Pay },
                    { "link", resort.Link },
                    { "adults", T.Adults },
                    { "kids", T.Under12 },
                    { "note", T.Note }
                }
            };

            var client     = new PostmarkClient("ba4b7707-54c8-49d7-83d5-e215483fe37c");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Console.WriteLine(sendResult.Status);
            }
            else
            {
                Console.WriteLine(sendResult.Status);
            }
        }
Beispiel #19
0
        protected async void btnTestPostmark_Click(object sender, EventArgs e)
        {
            // Send an email asynchronously:
            var message = new PostmarkMessage()
            {
                To         = "*****@*****.**",
                From       = "*****@*****.**",
                TrackOpens = true,
                Subject    = "Forgot Password",
                TextBody   = "Forgot Password?",
                HtmlBody   = "<html><body>Forgot Password?</body></html>",
                Tag        = "Password Reset"
            };

            //var imageContent = File.ReadAllBytes("test.jpg");
            //message.AddAttachment(imageContent, "test.jpg", "image/jpg", "cid:embed_name.jpg");

            var client     = new PostmarkClient("e8603c27-0841-47fe-8cc6-daf4163de446");
            var sendResult = await client.SendMessageAsync(message);

            if (sendResult.Status == PostmarkStatus.Success)
            {
                Response.Write("OK");
            }
            else /* Resolve issue.*/ } {
Beispiel #20
0
        public async Task <bool> SendMessageMail(string email, string subject, string messageSubject, string messageBody, string senderEmail, string senderName, string sentOn, int messageId)
        {
            var templateModel = new Dictionary <string, object> {
                { "sender_name", senderName },
                { "title", subject },
                { "body", HtmlToTextHelper.ConvertHtml(messageBody) },
                //{ "attachment_details", new []{
                //new Dictionary<string,object> {
                //	{ "attachmnet_url", "attachmnet_url_Value" },
                //	{ "attachment_name", "attachment_name_Value" },
                //	{ "attachment_size", "attachment_size_Value" },
                //	{ "attachment_type", "attachment_type_Value" },
                //}
                //}
                //},

                { "action_url", $"https://resgrid.com/User/Messages/ViewMessage?messageId={messageId}" },
                { "timestamp", sentOn },
                { "commenter_name", senderName }
            };

            if (SystemBehaviorConfig.OutboundEmailType == OutboundEmailTypes.Postmark)
            {
                var message = new TemplatedPostmarkMessage
                {
                    From          = DONOTREPLY_EMAIL,
                    To            = email,
                    TemplateId    = Config.OutboundEmailServerConfig.PostmarkMessageTemplateId,
                    TemplateModel = templateModel,
                };

                var client = new PostmarkClient(Config.OutboundEmailServerConfig.PostmarkApiKey);
                try
                {
                    PostmarkResponse response = await client.SendMessageAsync(message);

                    if (response.Status != PostmarkStatus.Success)
                    {
                        return(false);
                    }

                    return(true);
                }
                catch (Exception) {     }
            }
            else
            {
                var template = Mustachio.Parser.Parse(GetTempate("Message.html"));
                var content  = template(templateModel);

                Email newEmail = new Email();
                newEmail.HtmlBody = content;
                newEmail.Sender   = FROM_EMAIL;
                newEmail.To.Add(email);

                return(await _emailSender.Send(newEmail));
            }

            return(false);
        }
Beispiel #21
0
        public void SendInviteMail(string code, string departmentName, string email, string senderName, string senderEmail)
        {
            // Example request
            var message = new TemplatedPostmarkMessage
            {
                From          = FROM_EMAIL,
                To            = email,
                TemplateId    = Config.OutboundEmailServerConfig.PostmarkInviteTemplateId,
                TemplateModel = new Dictionary <string, object> {
                    { "invite_sender_name", senderName },
                    { "department_name", departmentName },
                    { "action_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}/Account/CompleteInvite?inviteCode={code}" },
                    { "support_email", FROM_EMAIL },
                    { "live_chat_url", LIVECHAT_URL },
                    { "help_url", HELP_URL },
                    { "sender_email", senderEmail },
                    { "invite_sender_organization_name", departmentName },
                },
            };

            var client = new PostmarkClient(Config.OutboundEmailServerConfig.PostmarkApiKey);

            try
            {
                PostmarkResponse response = client.SendMessageAsync(message).Result;

                if (response.Status != PostmarkStatus.Success)
                {
                    //Console.WriteLine("Response was: " + response.Message);
                }
            }
            catch (Exception) { }
        }
Beispiel #22
0
        public void SendNewDepartmentLinkMail(string name, string departmentName, string data, string email, int departmentId)
        {
            // Example request
            var message = new TemplatedPostmarkMessage
            {
                From          = FROM_EMAIL,
                To            = email,
                TemplateId    = Config.OutboundEmailServerConfig.PostmarkNewDepLinkTemplateId,
                TemplateModel = new Dictionary <string, object> {
                    { "name", name },
                    { "action_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}" },
                    { "login_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}/Account/LogOn" },
                    { "department_name", departmentName },
                    { "data", data },
                    { "support_email", FROM_EMAIL },
                    { "live_chat_url", LIVECHAT_URL },
                    { "help_url", HELP_URL },
                },
            };

            var client = new PostmarkClient(Config.OutboundEmailServerConfig.PostmarkApiKey);

            try
            {
                PostmarkResponse response = client.SendMessageAsync(message).Result;

                if (response.Status != PostmarkStatus.Success)
                {
                    //Console.WriteLine("Response was: " + response.Message);
                }
            }
            catch (Exception) { }
        }
Beispiel #23
0
        public void SendChargeFailed(string name, string email, string endDate, string departmentName, string planName)
        {
            // Example request
            var message = new TemplatedPostmarkMessage
            {
                From          = FROM_EMAIL,
                To            = email,
                TemplateId    = Config.OutboundEmailServerConfig.PostmarkChargeFailedTemplateId,
                TemplateModel = new Dictionary <string, object> {
                    { "plan_name", planName },
                    { "action_url", UPDATEBILLINGINFO_URL },
                    { "subscriptions_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}/User/Subscription" },
                    { "feedback_url", LIVECHAT_URL },
                    { "help_url", HELP_URL },
                    { "trial_extension_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}/User/Subscription" },
                    { "export_url", "" },
                    { "close_account_url", HELP_URL },
                },
            };

            var client = new PostmarkClient(Config.OutboundEmailServerConfig.PostmarkApiKey);

            try
            {
                PostmarkResponse response = client.SendMessageAsync(message).Result;

                if (response.Status != PostmarkStatus.Success)
                {
                    //Console.WriteLine("Response was: " + response.Message);
                }
            }
            catch (Exception) { }
        }
    public static async Task Main(string[] args)
    {
        var message = new PostmarkMessage()
        {
            To            = "*****@*****.**",
            From          = "*****@*****.**",
            TrackOpens    = true,
            Subject       = "Our First Test Email",
            TextBody      = "Hello, this is our first test email",
            HtmlBody      = "<strong>Hello</strong> dear Postmark user.",
            MessageStream = "outbound",
            Tag           = "Test Email"
        };

        var client     = new PostmarkClient("7e3947d6-ad88-41aa-91ae-8166ae128b21");
        var sendResult = await client.SendMessageAsync(message);

        if (sendResult.Status == PostmarkStatus.Success)
        {
            Console.WriteLine("Success");
        }
        else
        {
            Console.WriteLine("Failure");
        }
    }
        public void Any(DailyPostViewRequest req)
        {
            // we need a way to get all posts but for now let's just get the top 15
            var result = base.Gateway.Send(new PostQueryRequest()
            {
                Skip = 0, Take = 15
            });
            var posts = result.Results;

            using (var db = _dbConnectionFactory.Open())
            {
                var q = db.From <PostLog>()
                        .Where(x => x.RequestType == typeof(PostRequest).ToString() &&
                               x.EntryDate >= req.Date &&
                               x.EntryDate < req.Date.AddDays(1))
                        .GroupBy(x => x.Identifier)
                        .Select(x => new  { x.Identifier, Total = Sql.Count("*") });

                var results = db.Dictionary <string, int>(q);


                foreach (var p in posts)
                {
                    p.ViewsToday = results.ContainsKey(p.Id) ? results[p.Id] : 0;
                }
                ;
            }

            var client = new PostmarkClient(_appSettings.Get <string>("PostmarkApi:ServerToken"));

            try
            {
                ScriptContext sc = new ScriptContext().Init();

                var template = sc.RenderScript(@"
                  <table>
                      <tr><th>Title</th><th>Today's Views</th></tr>
                    {{#each post in posts}}
                      <tr>
                        <td>{{post.title}}</td><td>{{post.ViewsToday}}</td>
                      </tr>
                    {{/each}}
                    </table>
                ", new Dictionary <string, object>()
                {
                    { "posts", posts }
                });

                var sendResult = client.SendMessageAsync(new PostmarkMessage()
                {
                    From     = _appSettings.Get <string>("PostmarkApi:FromEmail"),
                    To       = _appSettings.Get <string>("PostmarkApi:ToEmail"),
                    Subject  = $"Daily Blog Post Report - {req.Date.ToString("yyyy-MM-dd")}",
                    HtmlBody = template
                }).Result;


                if (sendResult.Status == PostmarkStatus.Success) /* Handle success */ } {
        public async void ClientCanSendMessage()
        {
            var client   = new PostmarkClient(WRITE_TEST_SERVER_TOKEN);
            var response = await client
                           .SendMessageAsync(WRITE_TEST_SENDER_EMAIL_ADDRESS, WRITE_TEST_EMAIL_RECIPIENT_ADDRESS,
                                             "Testing the postmark client: " + DateTime.Now, "Plain text body", "<b>This is only a test!</b>");

            // This should successfully send.
            Assert.Equal(0, response.ErrorCode);
            Assert.Equal("OK", response.Message);
        }
Beispiel #27
0
        public async Task <bool> SendWelcomeMail(string name, string departmentName, string userName, string password, string email, int departmentId)
        {
            var templateModel = new Dictionary <string, object> {
                { "name", name },
                { "action_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}" },
                { "login_url", $"{Config.SystemBehaviorConfig.ResgridBaseUrl}/Account/LogOn" },
                { "department_id", departmentId },
                { "department_name", departmentName },
                { "username", userName },
                { "password", password },
                { "support_email", FROM_EMAIL },
                { "live_chat_url", LIVECHAT_URL },
                { "help_url", HELP_URL },
            };

            if (SystemBehaviorConfig.OutboundEmailType == OutboundEmailTypes.Postmark)
            {
                var message = new TemplatedPostmarkMessage
                {
                    From          = FROM_EMAIL,
                    To            = email,
                    TemplateId    = Config.OutboundEmailServerConfig.PostmarkWelcomeTemplateId,
                    TemplateModel = templateModel,
                };

                var client = new PostmarkClient(Config.OutboundEmailServerConfig.PostmarkApiKey);
                try
                {
                    PostmarkResponse response = await client.SendMessageAsync(message);

                    if (response.Status != PostmarkStatus.Success)
                    {
                        return(false);
                    }

                    return(true);
                }
                catch (Exception) { }
            }
            else
            {
                var template = Mustachio.Parser.Parse(GetTempate("Welcome.html"));
                var content  = template(templateModel);

                Email newEmail = new Email();
                newEmail.HtmlBody = content;
                newEmail.Sender   = FROM_EMAIL;
                newEmail.To.Add(email);

                return(await _emailSender.Send(newEmail));
            }

            return(false);
        }
Beispiel #28
0
        public async Task <bool> SendPasswordResetMail(string name, string password, string userName, string email, string departmentName)
        {
            var templateModel = new Dictionary <string, object> {
                { "name", name },
                { "department_Name", departmentName },
                { "login_url", LOGIN_URL },
                { "username", userName },
                { "password", password },
                { "support_url", LIVECHAT_URL },
                { "action_url", LOGIN_URL },
                { "operating_system", "" },
                { "browser_name", "" },
            };

            if (SystemBehaviorConfig.OutboundEmailType == OutboundEmailTypes.Postmark)
            {
                var message = new TemplatedPostmarkMessage
                {
                    From          = FROM_EMAIL,
                    To            = email,
                    TemplateId    = Config.OutboundEmailServerConfig.PostmarkResetPasswordTemplateId,
                    TemplateModel = templateModel,
                };

                var client = new PostmarkClient(Config.OutboundEmailServerConfig.PostmarkApiKey);
                try
                {
                    PostmarkResponse response = await client.SendMessageAsync(message);

                    if (response.Status != PostmarkStatus.Success)
                    {
                        return(false);
                    }

                    return(true);
                }
                catch (Exception) { }
            }
            else
            {
                var template = Mustachio.Parser.Parse(GetTempate("PasswordReset.html"));
                var content  = template(templateModel);

                Email newEmail = new Email();
                newEmail.HtmlBody = content;
                newEmail.Sender   = FROM_EMAIL;
                newEmail.To.Add(email);

                return(await _emailSender.Send(newEmail));
            }

            return(false);
        }
        public static PostmarkResponse SendMessage(this PostmarkClient client, string from,
                                                   string to, string subject, string body, NameValueCollection headers)
        {
            var headerDictionary = new Dictionary <string, string>();

            foreach (var h in headers.AllKeys)
            {
                headerDictionary[h] = headers[h];
            }

            return(client.SendMessageAsync(to, from, subject, body, headerDictionary).WaitForResult());
        }
Beispiel #30
0
        /// <summary>
        /// Send the mail to the list of users based on the defined template
        /// </summary>
        /// <param name="emailTolist"></param>
        /// <param name="subject"></param>
        /// <param name="message"></param>
        /// <param name="templateFileName"></param>
        /// <param name="emailCcList"></param>
        /// <param name="emailBccList"></param>
        /// <returns></returns>
        public void Send(List <string> emailTolist, string subject, List <string> changeObject, Dictionary <string, string> changeValue, string templateFileName, List <string> emailCcList = null, List <string> emailBccList = null)
        {
            SetSupporInfo(changeValue);
            GetEmailSetting();

            // Example asynchronous request
            PostmarkMessage message = new PostmarkMessage()
            {
                From = senderEmail,
                Cc   = string.IsNullOrEmpty(_appSettings.EmailSettings.CCEmail) ? null : _appSettings.EmailSettings.CCEmail
            };

            foreach (var email in emailTolist)
            {
                message.To = email;
            }

            if (emailCcList != null && emailCcList.Count > 0)
            {
                foreach (var emailCc in emailTolist)
                {
                    message.Cc = emailCc;
                }
            }

            if (emailBccList != null && emailBccList.Count > 0)
            {
                foreach (var emailBcc in emailBccList)
                {
                    message.Cc = emailBcc;
                }
            }

            message.Subject = subject;


            string emailBody = BodyTemplate.CreateMailBody(changeObject, changeValue, templateFileName, senderName, NotificationType.Email);

            message.HtmlBody = emailBody;

            //File Attachment for Images in Mail
            string        filePath = Directory.GetCurrentDirectory() + "\\wwwroot\\TemplateImages\\";
            List <string> files    = Directory.GetFiles(filePath).ToList();

            foreach (string file in files)
            {
                var imageContent = File.ReadAllBytes(file);
                message.AddAttachment(imageContent, file.Replace(filePath, "").ToLower(), "image/png", "cid:" + file.Replace(filePath, "").ToLower());
            }

            var client     = new PostmarkClient(postMarkKey);
            var sendResult = client.SendMessageAsync(message);
        }