Resolving 'The specified string is not in the form required for a subject.'

Matt picture Matt · Aug 30, 2011 · Viewed 39.8k times · Source

I have a class that sends an Email (MailMessage) but I get the following error:

"The specified string is not in the form required for a subject."

Is there a handy dandy method to sanitize the strings or do I have to write my own?

Answer

Christian.K picture Christian.K · Aug 30, 2011

I haven't personally tried it, but according to this, you only need:

subject = subject.Replace('\r', ' ').Replace('\n', ' ');

or something equivalent.

Internally, the MailMessage class will check the subject with:

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

So the only limitation (for now) happens to be the presence of CR or LF.