我有一个发送电子邮件(MailMessage)的类,但是出现以下错误:
“指定的字符串不是主题所需的格式。”
是否有方便的花花公子的方法来清理字符串,还是我必须自己编写?
Answers:
我没有亲自尝试过,但是根据这个,您只需要:
subject = subject.Replace('\r', ' ').Replace('\n', ' ');
或类似的东西。
在内部,MailMessage
课程将通过以下方式检查主题:
if (value != null && MailBnfHelper.HasCROrLF(value))
{
throw new ArgumentException(SR.GetString(SR.MailSubjectInvalidFormat));
}
因此(目前)唯一的限制是CR
or的存在LF
。
subject = subject.Replace(Environment.NewLine, " ");
另外,限制为168个字符,因此您也应该检查该字符。
更新:对不起,这是胡说八道:)就我而言,这一定是换行符。
对于VB.NET
subject = subject.Replace(vbNewLine, "")
subject = subject.Replace(vbCr, " ").Replace(vbLf, " ")
我知道这已经回答了,但事实是:
首先,您需要修剪主题,然后说明主题的最大长度(什么是电子邮件主题长度限制?):
subject = subject.Trim();
subject = subject.Substring(0, Math.Min(subject.Length, 78));
这将删除开头和结尾的所有新行或空白。然后使用Substring限制主题长度。