C# 粘贴到文本框中会破坏后端电子邮件结构

C# 粘贴到文本框中会破坏后端电子邮件结构,c#,asp.net,html,asp.net-mvc,email,C#,Asp.net,Html,Asp.net Mvc,Email,我有一个最奇怪的问题,我甚至不能合理化。 我有一个带有几个文本框的表单,其中一个是评论框: MVC: (不要问我为什么需要小评论和大评论,客户就是客户) 无论如何,我的问题是,当我在评论框中键入评论时,我会得到以下回报: 但是,当我复制粘贴文本时,我会得到以下回报: 为什么会发生这种情况?这可能是(我能想到的)几件事——这两件事都与客户端有关 电子邮件客户端中的某些内容,它没有像应该的那样呈现\n。 虽然对于Windows,\r\n是标准,但许多应用程序并不正确地遵守“\n”。我会尝试将其

我有一个最奇怪的问题,我甚至不能合理化。 我有一个带有几个文本框的表单,其中一个是评论框:

MVC:

(不要问我为什么需要小评论和大评论,客户就是客户)

无论如何,我的问题是,当我在评论框中键入评论时,我会得到以下回报:

但是,当我复制粘贴文本时,我会得到以下回报:


为什么会发生这种情况?

这可能是(我能想到的)几件事——这两件事都与客户端有关

  • 电子邮件客户端中的某些内容,它没有像应该的那样呈现
    \n
    。 虽然对于Windows,
    \r\n
    是标准,但许多应用程序并不正确地遵守“
    \n
    ”。我会尝试将其用于换行,而不仅仅是
    \n
  • 还有与客户机有关的编码(但我对此表示怀疑)

    • 好的。。。所以我会发布一张我的问题的图片。。。然后我会羞愧地永远躲在山洞里


      谢谢大家的帮助。

      语言和Optin应该各自独立。。。非html电子邮件上的“\n”原始视图发生了什么变化?您是否尝试过注释BodyEncoding?请参考原始视图;将电子邮件拖到记事本中,注释出正文编码并没有改变任何东西。LOL:D下一次的想法;使用相同的数据进行测试。我想我们中的一些人(不管怎么说我)认为你第一张图片中的文字会被第二张图片中的文字所取代。所以实际上,我当时的回答是正确的。我告诉过你这和客户有关>:|
      <div class="contactUsTextArea">
          Comments or Questions:<br />
          @Html.TextAreaFor(x => x.Comments, new { maxlength = 990 } )
      </div>
      
      <div class="contactUsTextArea">
          Comments or Questions:
          <br>
          <textarea id="Comments" rows="2" name="Comments" maxlength="990" cols="20"></textarea>
      </div>
      
      public bool SendEmail(ContactUsModel formSubmission) {
          MailMessage email = new MailMessage();
          SmtpClient smtp = new SmtpClient();
          string upc = formSubmission.ProductUpcCode;
          string comments = formSubmission.Comments;
          string comments_small = formSubmission.Comments;
      
          if (!string.IsNullOrEmpty(formSubmission.ProductUpcCode) && upc.Length > 14 )
              upc = upc.Substring(0, 13);
      
          if (!string.IsNullOrEmpty(comments) && comments.Length > 990)
              comments = comments.Substring(0, 989);
      
          if (!string.IsNullOrEmpty(comments_small) && comments_small.Length > 255)
              comments_small = comments_small.Substring(0, 254);
      
          string bodyText = "FIRST_NAME:" + formSubmission.FirstName + "\n" +
                              "LAST_NAME:" + formSubmission.LastName + "\n" +
                              "COMPANY:" + formSubmission.CompanyName + "\n" +
                              "ADDRESS:" + formSubmission.StreetAddress + "\n" +
                              "CITY_TOWN:" + formSubmission.City + "\n" +
                              "STATE_PROVINCE:" + formSubmission.Province + "\n" +
                              "ZIP_POSTAL:" + formSubmission.PostalCode + "\n" +
                              "COUNTRY:CAN\n" +
                              "EMAIL:" + formSubmission.Email + "\n" +
                              "PHONE:" + formSubmission.PhoneNumber + "\n" +
                              "UPC:" + upc + "\n" +
                              "DATE_CODE:\n" +
                              "BRAND_PRODUCT:" + formSubmission.ProductName + "\n" +
                              "COMMENTS:" + comments_small + "\n" +
                              "FULL_COMMENTS:" + comments + "\n" +
                              "LANGUAGE:English" + "\n" +
                              "OPTIN:N";
          email.From = new MailAddress(ConfigurationManager.AppSettings["emailSubmission_FROM"]);
          email.To.Add(new MailAddress(ConfigurationManager.AppSettings["emailSubmission_TO"]));
          email.Subject = ConfigurationManager.AppSettings["emailSubmission_SUBJECT"];
          email.IsBodyHtml = false;
          email.Body = bodyText;
          email.BodyEncoding = System.Text.Encoding.UTF8;
      
          smtp.Send(email);            
          return true;
      }