Exemple #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        IntroText.Text = ExtractBodyFromHtmlString(parameters.GetParameter <string>("IntroText"));
        useCaptcha     = parameters.GetParameter <bool>("UseCaptcha");
        ValidationSummary.HeaderText = StringResourceSystemFacade.GetString("Composite.Forms.Renderer", "Composite.Forms.ValidationSummary.HeaderText");
        var sendButtonLabel = parameters.GetParameter <string>("SendButtonLabel");

        if (sendButtonLabel != string.Empty)
        {
            Send.Text = GetLocalized(sendButtonLabel);
        }

        var resetButtonLabel = parameters.GetParameter <string>("ResetButtonLabel");

        Reset.Value = GetLocalized(resetButtonLabel);
        if (resetButtonLabel == string.Empty)
        {
            Reset.Visible = false;
        }

        FormsRenderer.InsertForm(this.Fields, parameters);
    }
Exemple #2
0
    protected void Send_Click(object sender, EventArgs e)
    {
        try
        {
            if (FormsRenderer.SubmitForm(parameters, CaptchaInput.Text))
            {
                var responseText    = parameters.GetParameter <string>("ResponseText");
                var responsePageUrl = parameters.GetParameter <string>("ResponseUrl");
                if (!string.IsNullOrEmpty(responsePageUrl))
                {
                    Response.Redirect(responsePageUrl);
                }

                IntroText.Text   = responseText;
                Fields.Visible   = false;
                FieldSet.Visible = false;
                Captcha.Visible  = false;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
        public static string SendEmail(string ResponseText, string From, string To, string Cc, string Subject)
        {
            var   newDataField = typeof(FormsRenderer).GetField("newData", BindingFlags.NonPublic | BindingFlags.Static);
            IData newData      = (IData)newDataField.GetValue(null);

            var page        = HttpContext.Current.Handler as Page;
            var attachments = new List <Attachment>();

            if (page != null)
            {
                foreach (string fileName in page.Request.Files)
                {
                    var file = page.Request.Files[fileName];

                    if (file.FileName == string.Empty)
                    {
                        continue;
                    }

                    var filename = NormalizeFilename(Path.GetFileName(file.FileName));

                    attachments.Add(new Attachment(file.InputStream, filename, file.ContentType)
                    {
                        NameEncoding = Encoding.ASCII
                    });
                }
            }

            XElement  inputXml = FormsRenderer.GetXElement(newData);
            XDocument mailBody = new XDocument();

            XslCompiledTransform xslTransform = new XslCompiledTransform();

            xslTransform.Load(FormsRenderer.FormsRendererLocalPath + "Xslt/MailBody.xslt");

            using (var writer = mailBody.CreateWriter())
            {
                xslTransform.Transform(inputXml.CreateReader(), writer);
            }

            MailMessage msgMail = new MailMessage();

            try
            {
                msgMail.From = new MailAddress(From);
            }
            catch (Exception e)
            {
                LoggingService.LogError(string.Format("Mail sending(From: '{0}')", From), e.Message);
                throw e;
            }
            try
            {
                msgMail.To.Add(To);
            }
            catch (Exception e)
            {
                LoggingService.LogError(string.Format("Mail sending(To: '{0}')", To), e.Message);
                throw e;
            }
            if (!string.IsNullOrEmpty(Cc))
            {
                try
                {
                    msgMail.CC.Add(Cc);
                }
                catch (Exception e)
                {
                    LoggingService.LogError(string.Format("Mail sending(Cc: '{0}')", Cc), e.Message);
                    throw e;
                }
            }

            foreach (var attachment in attachments)
            {
                try
                {
                    msgMail.Attachments.Add(attachment);
                }
                catch (Exception e)
                {
                    LoggingService.LogError(string.Format("Mail sending(Attachment: '{0}')", attachment.Name), e.Message);
                    throw e;
                }
            }

            try
            {
                msgMail.Subject    = Subject;
                msgMail.IsBodyHtml = true;
                msgMail.Body       = mailBody.ToString();

                SmtpClient client = new SmtpClient();
                client.Send(msgMail);
            }
            catch (Exception e)
            {
                throw new InvalidOperationException(
                          "Unable to send mail. Please ensure that web.config has correct /configuration/system.net/mailSettings: " +
                          e.Message);
            }

            return(ResponseText);
        }