我有一个类可以发送邮件(MailMessage),但出现以下错误:
"指定的字符串不符合主题所需的格式。"
是否有方便的方法来清理字符串,或者我必须自己编写代码?
我有一个类可以发送邮件(MailMessage),但出现以下错误:
"指定的字符串不符合主题所需的格式。"
是否有方便的方法来清理字符串,或者我必须自己编写代码?
我个人没有尝试过,但根据这个链接所述,你只需要:
subject = subject.Replace('\r', ' ').Replace('\n', ' ');
或者等价物。
MailMessage
类在内部会通过以下代码检查邮件主题:
if (value != null && MailBnfHelper.HasCROrLF(value))
{
throw new ArgumentException(SR.GetString(SR.MailSubjectInvalidFormat));
}
目前唯一的限制是存在CR
或LF
。
此外,还有一个168个字符的限制,所以您也应该检查一下。
更新:抱歉,这是完全胡说八道 :) 在我的情况下可能是换行符。
针对VB.NET
subject = subject.Replace(vbNewLine, "")
subject = subject.Replace(vbCr, " ").Replace(vbLf, " ")
的意思是将字符串变量subject
中的回车(vbCr
)和换行(vbLf
)替换为空格(" ")。 - JNFsubject = subject.Trim();
subject = subject.Substring(0, Math.Min(subject.Length, 78));
subject = subject.Replace(Environment.NewLine, " ");
- Nae\r
和\n
字符。你的解决方案只在某些情况下有效... - Mladen B.