IT Share you

'지정된 문자열이 제목에 필요한 형식이 아닙니다.'해결

shareyou 2020. 11. 30. 20:17
반응형

'지정된 문자열이 제목에 필요한 형식이 아닙니다.'해결


이메일 (MailMessage)을 보내는 수업이 있지만 다음과 같은 오류가 발생합니다.

"지정된 문자열이 제목에 필요한 형식이 아닙니다."

문자열을 살균하는 편리한 멋쟁이 방법이 있습니까? 아니면 직접 작성해야합니까?


나는 개인적으로 그것을 시도하지 않은,하지만에 따라 만 필요합니다 :

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

또는 동등한 것.

내부적으로 MailMessage수업은 다음과 같이 주제를 확인합니다.

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

따라서 (현재) 유일한 제한은 CR또는 의 존재입니다 LF.


또한 168 자 제한이 있으므로 확인해야합니다.

업데이트 : 미안합니다 이것은 완전한 헛소리입니다 :) 제 경우에는 줄 바꿈이어야합니다.


나는 .NET 2.0과 4.5를 시도했고 168 자보다 긴 제목을 보낼 수 있습니다. 나는 Papercut사용 하여 메일을 확인했습니다.


VB.NET의 경우

subject = subject.Replace(vbNewLine, "")

나는 이것이 이미 대답했다는 것을 알고 있지만 그것은 간다.

먼저 제목을 잘라낸 다음 제목 최대 길이를 고려해야합니다 ( 이메일 제목 길이 제한은 무엇입니까? ).

subject = subject.Trim();
subject = subject .Substring(0, Math.Min(subject .Length, 78));

이렇게하면 시작과 끝에서 새 줄이나 빈 공간이 제거됩니다. 그런 다음 Substring을 사용하여 제목 길이를 제한합니다.

참고 URL : https://stackoverflow.com/questions/7239733/resolving-the-specified-string-is-not-in-the-form-required-for-a-subject

반응형