解析'指定的字符串不是主题所需的形式.'

Mat*_*att 61 c# asp.net mailmessage

我有一个发送电子邮件(MailMessage)的类,但我收到以下错误:

"指定的字符串不是主题所需的形式."

是否有一个方便的花花公子方法来消毒字符串或我必须自己编写?

Chr*_*n.K 104

我没有亲自尝试过,但根据这个,你只需要:

subject = subject.Replace('\r', ' ').Replace('\n', ' ');
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

在内部,MailMessage课程将检查主题:

if (value != null && MailBnfHelper.HasCROrLF(value)) 
{
   throw new ArgumentException(SR.GetString(SR.MailSubjectInvalidFormat));
}
Run Code Online (Sandbox Code Playgroud)

所以唯一的限制(现在)恰好是CR或存在LF.

  • 这次真是万分感谢.但必须说 - 微软是否有任何理由不能*说*不允许换行? (4认同)
  • 您知道文档很难;-)最不可能的原因是,CRLF在消息格式中有非常特殊的用途(参见[RFC5322](https://tools.ietf.org/html/rfc5322))和他们不想打扰自动更改用户的数据,而是失败并让他手动完成(如上所示). (2认同)
  • 进一步注意 `subject = subject.Replace(Environment.NewLine, " ");` (2认同)

mik*_*son 12

还有168个字符的限制,所以你也应该检查.

更新:对不起,这是完全废话:)它一定是我的情况下的换行符.

  • 有没有关于此链接的文档? (2认同)