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?
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?
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
.
subject = subject.Replace(Environment.NewLine, " ");
–
Binding \r
and \n
characters. Your solution will only work in some cases... –
Mouse Also there is a limit of 168 characters so you should check for that too.
UPDATE: sorry this is complete bullshit :) It must have been a line break in my case.
For VB.NET
subject = subject.Replace(vbNewLine, "")
subject = subject.Replace(vbCr, " ").Replace(vbLf, " ")
–
Suprematism I know this has already answered, but it goes:
First, you need to trim the subject then account for the subject max length (What is the email subject length limit?):
subject = subject.Trim();
subject = subject.Substring(0, Math.Min(subject.Length, 78));
This will remove any new lines or empty spaces at the beginning and the end. Then Substring is used to restrict the subject length.
© 2022 - 2024 — McMap. All rights reserved.