public void SendRequestToTeacher(string senderName, string receiverEmail, string link) { var htmlMessage = CreateMessageForTeacher(senderName, link); var message = CreatePostMarkMessage(receiverEmail, htmlMessage); _postmarkClient.SendMessage(message); }
//[Ignore("This test sends a real email.")] public void Can_send_message_with_token_and_signature_and_headers_and_timeout() { var postmark = new PostmarkClient(_serverToken, 10); var email = new PostmarkMessage { To = _to, From = _from, // This must be a verified sender signature Subject = Subject, TextBody = TextBody, HtmlBody = HtmlBody }; email.Headers.Add("X-Header-Test-1", "This is a header value"); email.Headers.Add("X-Header-Test-2", "This is another header value"); var response = postmark.SendMessage(email); Assert.IsNotNull(response); Assert.IsNotNullOrEmpty(response.Message); Assert.IsTrue(response.Status == PostmarkStatus.Success); Assert.AreNotEqual(default(DateTime), response.SubmittedAt, "Missing submitted time value."); Console.WriteLine("Postmark -> {0}", response.Message); }
public bool SendEmail(string from, string replyTo, string subject, string body, string to) { try { const string postmarkApiKey = "30ddd0b0-0b9a-432e-a892-3c8739aabf0c"; var message = new PostmarkMessage { From = from.Trim(), To = to.Trim(), Subject = subject, HtmlBody = body, TextBody = body, ReplyTo = replyTo ?? from }; var client = new PostmarkClient(postmarkApiKey.Trim()); var response = client.SendMessage(message); } catch (Exception) { return(false); } return(true); }
/// <summary> /// Send Email is a method for sending an email /// This is how the app integrates with Postmark API to send a message from teh send notification page /// It shows a bootstrap modal for either fails and success. /// </summary> public bool SendEmail() { // Send an email asynchronously: var message = new PostmarkMessage() { To = "*****@*****.**", From = "*****@*****.**", TrackOpens = true, Subject = "A complex email", TextBody = "Plain Text Body", HtmlBody = "<html><body><p>A new notification has arrived.</p></body></html>", Tag = "New Year's Email Campaign", Headers = new HeaderCollection { { "X-CUSTOM-HEADER", "Header content" } } }; //var imageContent = File.ReadAllBytes("test.jpg"); //message.AddAttachment(imageContent, "test.jpg", "image/jpg", "cid:embed_name.jpg"); PostmarkClient client = new PostmarkClient("efc7197a-4c0d-4f4b-92f7-43c612ed74b1"); PostmarkResponse response = client.SendMessage(message); if (response.Status != PostmarkStatus.Success) { return(false); } else { return(true); } }
public bool Send(EmailMessage message) { message.DeliveryAttempts++; var pm = CreatePostmarkMessage(message); var response = _client.SendMessage(pm); message.Delivered = response.Status == PostmarkStatus.Success; if (message.Delivered) { message.DeliveredAt = DateTime.UtcNow; } return(message.Delivered); }
public void Can_send_message_with_token_and_signature_and_invalid_recipient_and_throw_validation_exception() { var postmark = new PostmarkClient(_serverToken); var email = new PostmarkMessage { To = "earth", From = _from, Subject = Subject, TextBody = TextBody }; postmark.SendMessage(email); }
public void SendEmail(string from, string to, string subject, string bodyText) { var message = new PostmarkMessage { From = from, To = to, Subject = subject, TextBody = bodyText, ReplyTo = "*****@*****.**" }; var client = new PostmarkClient(_apiKey); var response = client.SendMessage(message); }
public void Can_send_message_without_signature_and_receive_422() { var postmark = new PostmarkClient(_serverToken); var email = new PostmarkMessage { To = InvalidRecipient, From = InvalidRecipient, // This must not be a verified sender signature Subject = Subject, TextBody = TextBody }; var response = postmark.SendMessage(email); Assert.IsNotNull(response); Assert.IsNotNullOrEmpty(response.Message); Assert.IsTrue(response.Status == PostmarkStatus.UserError); }
public void Can_send_message_without_token_and_receive_401() { var postmark = new PostmarkClient(""); var email = new PostmarkMessage { To = InvalidRecipient, From = InvalidRecipient, Subject = Subject, TextBody = TextBody }; var response = postmark.SendMessage(email); Assert.IsNotNull(response); Assert.IsNotNullOrEmpty(response.Message); Assert.IsTrue(response.Status == PostmarkStatus.UserError); Console.WriteLine("Postmark -> {0}", response.Message); }
public void Can_send_message_with_token_and_signature_and_name_based_email() { var postmark = new PostmarkClient(_serverToken); var email = new PostmarkMessage { To = _to, From = string.Format("The Team <{0}>", _from), // This must be a verified sender signature Subject = Subject, TextBody = TextBody }; var response = postmark.SendMessage(email); Assert.IsNotNull(response); Assert.IsNotNullOrEmpty(response.Message); Assert.IsTrue(response.Status == PostmarkStatus.Success); Console.WriteLine("Postmark -> " + response.Message); }
//[Ignore("This test sends a real email.")] public void Can_send_message_with_token_and_signature() { var postmark = new PostmarkClient(_serverToken); var email = new PostmarkMessage { To = _to, From = _from, // This must be a verified sender signature Subject = Subject, TextBody = TextBody, HtmlBody = HtmlBody }; var response = postmark.SendMessage(email); Assert.IsNotNull(response); Assert.IsNotNullOrEmpty(response.Message); Assert.IsTrue(response.Status == PostmarkStatus.Success); Console.WriteLine("Postmark -> {0}", response.Message); }
//[Ignore("This test sends a real email.")] public void Can_send_message_with_file_attachment() { var postmark = new PostmarkClient(_serverToken); var email = new PostmarkMessage { To = _to, From = _from, // This must be a verified sender signature Subject = Subject, TextBody = TextBody, HtmlBody = HtmlBody }; email.AddAttachment("logo.png", "image/png"); var response = postmark.SendMessage(email); Assert.IsNotNull(response); Assert.IsNotNullOrEmpty(response.Message); Assert.IsTrue(response.Status == PostmarkStatus.Success); }
public void SendByApi() { PostmarkMessage message = new PostmarkMessage() { From = this.From , To = this.To , Cc = this.Cc , Bcc = this.Bcc , Subject = this.Subject , ReplyTo = this.ReplyTo }; if (this.IsBodyHtml) { message.HtmlBody = this.Body; } else { message.TextBody = this.Body; } if (this.Attachments != null && this.Attachments.Count > 0) { foreach (var attachment in this.Attachments) { var bytes = new Byte[attachment.ContentStream.Length]; attachment.ContentStream.Read(bytes, 0, bytes.Length); message.AddAttachment(bytes, attachment.ContentType.ToString(), attachment.Name); } } //Created just to get user name which will be used as ApiKey SmtpClient sc = new SmtpClient(); PostmarkClient client = new PostmarkClient((sc.Credentials as NetworkCredential).UserName); var response = client.SendMessage(message); if (response.Status != PostmarkStatus.Success) { throw new System.Net.Mail.SmtpException(response.Message); } }
public void Can_send_message_with_cc_and_bcc() { var postmark = new PostmarkClient("POSTMARK_API_TEST"); var email = new PostmarkMessage { To = InvalidRecipient, Cc = "*****@*****.**", Bcc = "*****@*****.**", From = InvalidRecipient, Subject = Subject, TextBody = TextBody }; var response = postmark.SendMessage(email); Assert.IsNotNull(response); Assert.IsNotNullOrEmpty(response.Message); Assert.IsTrue(response.Status == PostmarkStatus.Success); Console.WriteLine("Postmark -> " + response.Message); }
/// <summary> /// btnContactSend_Click is a click event from the send button /// This is how the app integrates with Postmark API to send a message from teh contact us page /// It shows a bootstrap modal for either fails and success. /// </summary> protected void btnContactSend_Click(object sender, EventArgs e) { var message = new PostmarkMessage() { To = "*****@*****.**", From = "*****@*****.**", TrackOpens = true, Subject = txtContactSub.Text, TextBody = "Plain Text Body", HtmlBody = txtContactMsg.Text, Tag = "New Year's Email Campaign", Headers = new HeaderCollection { { "X-CUSTOM-HEADER", "Header content" } } }; PostmarkClient client = new PostmarkClient("efc7197a-4c0d-4f4b-92f7-43c612ed74b1"); PostmarkResponse response = client.SendMessage(message); if (response.Status != PostmarkStatus.Success) { lblModalTitle.Text = "ERROR!"; lblModalBody.Text = "Message has not been sent. Please try again"; ScriptManager.RegisterStartupScript(Page, Page.GetType(), "myModal", "$('#myModal').modal();", true); upModal.Update(); } else { lblModalTitle.Text = "CONGRATULATIONS!"; lblModalBody.Text = "Message has been sent."; ScriptManager.RegisterStartupScript(Page, Page.GetType(), "myModal", "$('#myModal').modal();", true); upModal.Update(); } }
public void Send(Email email) { var mail = CreateMailMessageFromEmail(email); try { if (SystemBehaviorConfig.OutboundEmailType == OutboundEmailTypes.Postmark) { if (mail.From != null && mail.From.Address.Contains("resgrid.com") && mail.From.Address != "*****@*****.**" && mail.From.Address != "*****@*****.**" && mail.From.Address != "*****@*****.**" && email.To.First() != "*****@*****.**" && email.To.First() != "*****@*****.**" && email.To.First() != "*****@*****.**") { var to = new StringBuilder(); foreach (var t in email.To) { if (to.Length == 0) { to.Append(t); } else { to.Append("," + t); } } //var message = new PostmarkMessage(email.From, to.ToString(), email.Subject, email.HtmlBody); var message = new PostmarkMessage("", to.ToString(), email.Subject, email.HtmlBody); var newClient = new PostmarkClient(Config.OutboundEmailServerConfig.PostmarkApiKey); message.From = null; //var response = newClient.SendMessage(message); //var response = newClient.SendMessageAsync(email.From, to.ToString(), email.Subject, email.HtmlBody).Result; var response = newClient.SendMessage(email.From, to.ToString(), email.Subject, email.HtmlBody); if (response.ErrorCode != 200 && response.ErrorCode != 406 && response.Message != "OK" && !response.Message.Contains("You tried to send to a recipient that has been marked as inactive")) { Logging.LogError(string.Format("Error from PostmarkEmailSender->Send: {3} {0} FromEmail:{1} ToEmail:{2}", response.Message, mail.From.Address, mail.To.First().Address, response.ErrorCode)); } } else { try { using (var smtpClient = new SmtpClient { DeliveryMethod = SmtpDeliveryMethod.Network, Host = Config.OutboundEmailServerConfig.Host }) { if (!String.IsNullOrWhiteSpace(OutboundEmailServerConfig.UserName) && !String.IsNullOrWhiteSpace(OutboundEmailServerConfig.Password)) { smtpClient.Credentials = new System.Net.NetworkCredential(OutboundEmailServerConfig.UserName, OutboundEmailServerConfig.Password); } smtpClient.Send(mail); } } catch (Exception ex) { Logging.LogException(ex); } } } else { try { using (var smtpClient = new SmtpClient { DeliveryMethod = SmtpDeliveryMethod.Network, Host = OutboundEmailServerConfig.Host }) { if (!String.IsNullOrWhiteSpace(OutboundEmailServerConfig.UserName) && !String.IsNullOrWhiteSpace(OutboundEmailServerConfig.Password)) { smtpClient.Credentials = new System.Net.NetworkCredential(OutboundEmailServerConfig.UserName, OutboundEmailServerConfig.Password); } smtpClient.Send(mail); } } catch (Exception ex) { Logging.LogException(ex); } } } catch (PostmarkValidationException) { } catch (Exception) { try { using (var smtpClient = new SmtpClient { DeliveryMethod = SmtpDeliveryMethod.Network, Host = Config.OutboundEmailServerConfig.Host }) { smtpClient.Credentials = new System.Net.NetworkCredential(Config.OutboundEmailServerConfig.UserName, Config.OutboundEmailServerConfig.Password); smtpClient.Send(mail); } } catch (Exception ex) { if (!ex.ToString().Contains("You tried to send to a recipient that has been marked as inactive.")) { Logging.LogException(ex); } } } }