Ejemplo n.º 1
0
        public static string GetContent(Uri uri, ContentPageParameters parameters)
        {
            string content = GetHttpContent(uri, parameters);

            string[] expressions =
            {
                @"\<!-- NOEMAIL-START --\>.*?\<!-- NOEMAIL-END --\>",
                @"\<script.*?\<\/script\>",
                @"\<style.*?\<\/style\>",
                @"\<link.*?\<\/link\>",
                @"\<link.*?\/\>",
                @"href=""javascript:[0-9a-zA-Z$\._\';,\ =\(\)\[\]]*""",
                @".?onclick=""[0-9a-zA-Z\._\';,\ =\(\)\[\]]*""",
            };

            foreach (string r in expressions)
            {
                content = Regex.Replace(content, r, string.Empty,
                                        RegexOptions.IgnoreCase | RegexOptions.Singleline);
            }

            content = HtmlAbsoluteLinksWriter.Rewrite(content, parameters != null ? parameters.BaseUri : null);

            StringBuilder scontent = new StringBuilder(content);

            if (parameters != null && parameters.HasOnline)
            {
                scontent.Insert(0, string.Format("<p style=\"margin: 10px; font-size: 8pt;\">Do not hit 'reply' to this email! <a href=\"{0}\">Can't see message? click here for online version &#187;&#187;</a></p>\n", uri.ToString()));
            }

            // insert additional note
            if (parameters != null && !string.IsNullOrEmpty(parameters.Note))
            {
                scontent.Insert(0, string.Format("<p style=\"margin: 10px;\">{0}</p>\n", Renderer.Render(parameters.Note)));
            }

            // hack: insert stylesheet
            scontent.Insert(0, GetCss(parameters != null ? parameters.BaseUri : null));
            return(scontent.ToString());
        }
Ejemplo n.º 2
0
        public void RewriteRelativeUrls()
        {
            string baseuri = "http://www.rewritten.com/";

            TestDataItem[] testdata =
            {
                new TestDataItem("http://www.server.com/",         "http://www.server.com/"),
                new TestDataItem("http://www.server.com/xyz.html", "http://www.server.com/xyz.html"),
                new TestDataItem("/",                              string.Format("{0}",              baseuri)),
                new TestDataItem("",                               string.Format("{0}",              baseuri)),
                new TestDataItem("/x.html",                        string.Format("{0}x.html",        baseuri))
            };

            foreach (TestDataItem test in testdata)
            {
                string input           = string.Format("<a href=\"{0}\">link</a>", test._input);
                string expected_output = string.Format("<html><a href=\"{0}\">link</a></html>", test._output);
                string actual_output   = HtmlAbsoluteLinksWriter.Rewrite(input, new Uri(baseuri, UriKind.Absolute));
                Console.WriteLine("{0} => {1}", input, actual_output);
                Assert.AreEqual(expected_output, actual_output);
            }
        }