예제 #1
0
        private void QueueMessage(System.Net.Mail.MailMessage message)
        {
            CleanAddresses(message);

            _queue.Enqueue(message.ToMailMessage());
            _statsClient.Counter(MetricNames.EmailsQueued);
        }
예제 #2
0
        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);
        }
예제 #3
0
 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);
 }
예제 #4
0
 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);
 }
예제 #5
0
 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);
 }
예제 #6
0
        public void SendAddedToOrganization(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);

            QueueMessage(msg);
        }
예제 #7
0
        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);
        }