Как добавить текст формы в тело сообщения электронной почты ASP.NET - PullRequest
0 голосов
/ 21 декабря 2011

В прошлом я использовал что-то подобное для отправки полей формы в форме электронной почты asp.net, я пытаюсь форматировать больше HTML-письмо, но я не знаю, как передать значение текстового поля в сообщение может кто-топомогите мне?

//OLD WAY
message.Body += "<b>Preferred contact method: </b> " + drp_contact_method.SelectedValue + "<br/>";//


protected void btnAction_Click(object sender, EventArgs e)
    {
        if ((Page.IsValid))
        {
            if (dpAction.SelectedValue.ToString()=="Submit" )
            {
            // define SMTP client

            SmtpClient smtp = new SmtpClient("IP HERE");
            //smtp.EnableSsl = true; 
            // smtp.UseDefaultCredentials = true;
            //create the mail message
            MailMessage message = new MailMessage();

            //From address will be given as a MailAddress Object
            message.From = new MailAddress("myemail@domain.com");


            //To address collection of MailAddress
            message.To.Add("ric.gutierrez@domain.com");
            message.Subject = "Pre-Registration Form";


            // Change to false to not include HTML 

            string bodyHTML = string.Empty;
            string bodyPlain = string.Empty;
            message.IsBodyHtml = true;

            bodyHTML = @"<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'
'http://www.w3.org/TR/html4/loose.dtd'>
<html lang='en'>
<head>
</head>
<body>
<table style='width:800px; border:1px solid #000;' cellpadding='10' cellspacing='0' align='center'>
<tr>
<td colspan='2' style='background-color:#009797; border-bottom:1px solid #000;'>
<h1 style='text-align:center; color:#FFF;'>Pre-Registration Information</h1></td>
</tr>
  <td style='width:600px; vertical-align:top;'>
<h4 style='font-family:Arial, Helvetica, sans-serif; color:#000;'><u>PATIENT INFORMATION</u></h4>
<p style='font-family:Arial, Helvetica, sans-serif; font-size:.8em; color:#000; line-height:1.5em;'>Last Name:</p>
+ txtLastName.Text + 

1 Ответ

0 голосов
/ 21 декабря 2011

Я думаю, что самый чистый способ сделать это - использовать string.Format. Сначала определите ваш HTML, как вы в настоящее время в bodyHTML, но поместите заполнители, такие как {0} и {1} в строке. Затем подключите переменные формы следующим образом:

var body = string.Format(
    bodyHTML, 
    HttpUtility.HtmlEncode(yourTextBox.Text), 
    HttpUtility.HtmlEncode(yourOtherTextBox.Text));

Это заменит {0} на yourTextBox.Text и {1} на yourOtherTextBox.Text, причем оба значения правильно закодированы для HTML.

...