MailAddress: в заголовке письма обнаружен недопустимый символ
Я использую MailAddress для создания факса по электронной почте. Мы используем систему под названием SatisFAXtion v 8.6. Чтобы предоставить титульную страницу для отправки по факсу, я могу добавить местоположение шаблона к адресу mail.TO.
Формат выглядит так:
12125551234^template=cp\\FAXReportCover.rtf@fax.ourcompanymail.com
При компиляции все работает нормально, но мне нужны две обратные косые черты, поэтому я добавил еще два в качестве escape-символов.
Когда я запускаю программу, я получаю исключение:
Message: An invalid character was found in the mail header:
StackTrace: at System.Net.Mail.MailAddressParser.ParseLocalPart(String data, Int32& index, Boolean expectAngleBracket, Boolean expectMultipleAddresses)
at System.Net.Mail.MailAddressParser.ParseAddress(String data, Boolean expectMultipleAddresses, Int32& index)
at System.Net.Mail.MailAddressParser.ParseMultipleAddresses(String data)
at System.Net.Mail.MailAddressCollection.ParseValue(String addresses)
at System.Net.Mail.MailAddressCollection.Add(String addresses)
at System.Net.Mail.Message..ctor(String from, String to)
at System.Net.Mail.MailMessage..ctor(String from, String to)
Есть ли способ вставить обратную косую черту в адрес электронной почты в объекте MailAddress?
3 ответа
Из Википедии:
Ограничения для специальных символов заключаются в том, что они должны использоваться только в том случае, если они заключены в кавычки, и что 3 из них (пробел, обратная косая черта \ и кавычка " (ASCII: 32, 92, 34)) также должны предшествовать обратной косой черте \ (например, "\ \\"").
Поэтому я не думаю, что ваш адрес электронной почты является действительным, так как обратные косые черты не заключены в кавычки.
Если бы вы могли изменить адрес на что-то вроде 12125551234^template="cp\\"FAXReportCover.rtf@fax.ourcompanymail.com
Я думаю, что все будет в порядке.
Несколько лет назад я нашел обходной путь по аналогичной проблеме. Проблема была в параметре DisplayName в конструкторе MailAddress.
Может быть, это вам тоже поможет
http://netpl.blogspot.com/2008/09/smtpclient-exception-invalid-character.html
Я получил эту ошибку, когда, если это было изменено на "сеть" --- тогда ошибка была решена. (Насколько я понимаю - Incase указанной опции pickupdirectory, заголовок -encoding utf-8 (base64) выдавал ошибку)
Надеюсь, поможет