public void SendDailySummary(string emailAddress, DailySummaryModel notification) { notification.BaseUrl = Settings.Current.BaseURL; System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(notification, "DailySummary"); msg.To.Add(emailAddress); QueueMessage(msg); }
private async Task QueueMessageAsync(System.Net.Mail.MailMessage message, string metricsName) { await _metrics.CounterAsync($"mailer.{metricsName}").AnyContext(); CleanAddresses(message); await _queue.EnqueueAsync(message.ToMailMessage()).AnyContext(); }
private void QueueMessage(System.Net.Mail.MailMessage message) { CleanAddresses(message); _queue.Enqueue(message.ToMailMessage()); _metricsClient.Counter(MetricNames.EmailsQueued); }
public static System.Net.Mail.MailMessage ToMailMessage(this MailMessage notification) { var message = new System.Net.Mail.MailMessage { Subject = notification.Subject }; if (!String.IsNullOrEmpty(notification.To)) { message.To.Add(notification.To); } if (!String.IsNullOrEmpty(notification.From)) { message.From = new MailAddress(notification.From); } if (!String.IsNullOrEmpty(notification.TextBody)) { message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(notification.TextBody, null, "text/plain")); } if (!String.IsNullOrEmpty(notification.HtmlBody)) { message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(notification.HtmlBody, null, "text/html")); } return(message); }
private static void CleanAddresses(System.Net.Mail.MailMessage msg) { if (Settings.Current.WebsiteMode == WebsiteMode.Production) { return; } var invalid = new List <string>(); invalid.AddRange(CleanAddresses(msg.To)); invalid.AddRange(CleanAddresses(msg.CC)); invalid.AddRange(CleanAddresses(msg.Bcc)); if (invalid.Count == 0) { return; } if (invalid.Count <= 3) { msg.Subject = String.Concat("[", invalid.ToDelimitedString(), "] ", msg.Subject).StripInvisible(); } msg.To.Add(Settings.Current.TestEmailAddress); }
public static MailMessage ToMailMessage(this System.Net.Mail.MailMessage message) { var notification = new MailMessage { To = message.To.ToString(), From = message.From != null?message.From.ToString() : null, Subject = message.Subject }; if (message.AlternateViews.Count == 0) { throw new ArgumentException("MailMessage must contain an alternative view.", "message"); } foreach (AlternateView view in message.AlternateViews) { if (view.ContentType.MediaType == "text/html") { using (var reader = new StreamReader(view.ContentStream)) notification.HtmlBody = reader.ReadToEnd(); } if (view.ContentType.MediaType == "text/plain") { using (var reader = new StreamReader(view.ContentStream)) notification.TextBody = reader.ReadToEnd(); } } return(notification); }
public Task SendDailySummaryAsync(string emailAddress, DailySummaryModel notification) { notification.BaseUrl = Settings.Current.BaseURL; System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(notification, "DailySummary"); msg.To.Add(emailAddress); return(QueueMessageAsync(msg, "dailysummary")); }
public Task SendOrganizationNoticeAsync(string emailAddress, OrganizationNotificationModel model) { model.BaseUrl = Settings.Current.BaseURL; System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(model, "OrganizationNotice"); msg.To.Add(emailAddress); return(QueueMessageAsync(msg, "organizationnotice")); }
public void SendVerifyEmail(User user) { System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(new UserModel { User = user, BaseUrl = Settings.Current.BaseURL }, "VerifyEmail"); msg.To.Add(user.EmailAddress); QueueMessage(msg); }
public void SendPaymentFailed(User owner, Organization organization) { System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(new PaymentModel { Owner = owner, Organization = organization, BaseUrl = Settings.Current.BaseURL }, "PaymentFailed"); msg.To.Add(owner.EmailAddress); QueueMessage(msg); }
public Task SendVerifyEmailAsync(User user) { System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(new UserModel { User = user, BaseUrl = Settings.Current.BaseURL }, "VerifyEmail"); msg.To.Add(user.EmailAddress); return(QueueMessageAsync(msg, "verifyemail")); }
public Task SendPaymentFailedAsync(User owner, Organization organization) { System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(new PaymentModel { Owner = owner, Organization = organization, BaseUrl = Settings.Current.BaseURL }, "PaymentFailed"); msg.To.Add(owner.EmailAddress); return(QueueMessageAsync(msg, "paymentfailed")); }
public void SendInvite(User sender, Organization organization, Invite invite) { System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(new InviteModel { Sender = sender, Organization = organization, Invite = invite, BaseUrl = Settings.Current.BaseURL }, "Invite"); msg.To.Add(invite.EmailAddress); QueueMessage(msg); }
public Task SendAddedToOrganizationAsync(User sender, Organization organization, User user) { System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(new AddedToOrganizationModel { Sender = sender, Organization = organization, User = user, BaseUrl = Settings.Current.BaseURL }, "AddedToOrganization"); msg.To.Add(user.EmailAddress); return(QueueMessageAsync(msg)); }
public void SendPasswordReset(User user) { if (user == null || String.IsNullOrEmpty(user.PasswordResetToken)) { return; } System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(new UserModel { User = user, BaseUrl = Settings.Current.BaseURL }, "PasswordReset"); msg.To.Add(user.EmailAddress); QueueMessage(msg); }
public Task SendPasswordResetAsync(User user) { if (String.IsNullOrEmpty(user?.PasswordResetToken)) { return(Task.CompletedTask); } System.Net.Mail.MailMessage msg = _emailGenerator.GenerateMessage(new UserModel { User = user, BaseUrl = Settings.Current.BaseURL }, "PasswordReset"); msg.To.Add(user.EmailAddress); return(QueueMessageAsync(msg)); }
public static System.Net.Mail.MailMessage ToMailMessage(this MailMessage notification) { var message = new System.Net.Mail.MailMessage { Subject = notification.Subject }; if (!String.IsNullOrEmpty(notification.To)) message.To.Add(notification.To); if (!String.IsNullOrEmpty(notification.From)) message.From = new MailAddress(notification.From); if (!String.IsNullOrEmpty(notification.TextBody)) message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(notification.TextBody, null, "text/plain")); if (!String.IsNullOrEmpty(notification.HtmlBody)) message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(notification.HtmlBody, null, "text/html")); return message; }
public static async Task SendAsync(this SmtpClient client, System.Net.Mail.MailMessage message) { // TODO: Verify that this works and see if there is a better method. client.Send(message); await Task.Yield(); }
private Task QueueMessageAsync(System.Net.Mail.MailMessage message) { CleanAddresses(message); return(_queue.EnqueueAsync(message.ToMailMessage())); }