Beispiel #1
0
        private void SendNoDbEmail(Person goer, GoerSupporter gs)
        {
            var from = new MailAddress(goer.EmailAddress ?? goer.EmailAddress2, goer.Name);
            var db   = DbUtil.Db;

            try
            {
                var text = Body;

                text = text.Replace("{salutation}", gs.Salutation, true);
                text = text.Replace("{track}", "", true);
                var qs   = "OptOut/UnSubscribe/?gid=" + Util.EncryptForUrl($"{gs.Id}");
                var url  = db.ServerLink(qs);
                var link = $@"<a href=""{url}"">Unsubscribe</a>";
                text = text.Replace("{unsubscribe}", link, true);
                text = text.Replace("%7Bfromemail%7D", from.Address, true);
                var supportlink = EmailReplacements.SupportLinkAnonymousReplacement(db, OrgId.ToString(), gs.Id.ToString());
                text = text.Replace("http://supportlink", supportlink, true);
                text = text.Replace("https://supportlink", supportlink, true);
                db.SendEmail(from, Subject, text, Util.ToMailAddressList(gs.NoDbEmail), gs.Id);
            }
            catch (Exception ex)
            {
                db.SendEmail(from, "sent emails - error", ex.ToString(),
                             Util.ToMailAddressList(from), gs.Id);
                throw;
            }
        }
        public void Should_Return_Anonymous_Replacement_Link()
        {
            using (var db = CMSDataContext.Create(DatabaseFixture.Host))
            {
                var      link      = EmailReplacements.SupportLinkAnonymousReplacement(db, "1", "1");
                String[] separator = { "//", "/" };
                var      url       = link.Split(separator, StringSplitOptions.RemoveEmptyEntries);
                var      linkId    = url[4];
                var      guid      = linkId.ToGuid();

                var ot = db.OneTimeLinks.SingleOrDefault(oo => oo.Id == guid.Value);
                ot.ShouldNotBeNull();
            }
        }