2012-04-26 1 views
6

Я использую MailAddress для создания факса по электронной почте. Мы используем систему под названием SatisFAXtion v 8.6. Чтобы предоставить титульную страницу для отправки факсов, я могу добавить расположение шаблона в адрес mail.TO.MailAddress: Недопустимый символ был найден в заголовке почты

Формат выглядит следующим образом:

12125551234^template=cp\\[email protected] 

При компиляции он отлично работает, но мне нужно два обратных слэша, так что я добавил еще два, как экранирующих символов.

Когда я запускаю программу, я получаю исключение:

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?

ответ

4

От Wikipedia:

Ограничения для специальных символов, что они должны быть только используется , когда они содержатся в кавычках, и что 3 из них ( пространства, обратная косая черта \ и кавычка " (ASCII: 32, 92, 34)) также должен иметь обратную косую черту \ (например, "\\\" ").

Поэтому я не думаю, что ваш адрес электронной почты действителен, так как обратная косая черта не содержится между кавычками.

Если бы вы могли сменить адрес на что-то вроде 12125551234^template="cp\\"[email protected], я думаю, все будет в порядке.

+0

Так это устранит проблему, но только должен был поставить полный адрес в кавычках: –

+0

'' \ "12125551234^template = cp \\\\ FAXReportCover.rtf \" "+" @ fax.ourcompanymail.com "' –

3

Несколько лет назад я нашел обходной путь по аналогичной проблеме. Проблема была в параметре DisplayName в конструкторе MailAddress.

Может быть, это поможет вам тоже:

http://netpl.blogspot.com/2008/09/smtpclient-exception-invalid-character.html

+0

Остерегайтесь, ваше обходное решение относится к параметру displayName, а не к параметрам адреса. – xpereta

+0

@xpereta: вам не нужно было опускать ** оба ** ответы. –

+0

Я удалил downvotes и улучшил ответы вместо этого. Хотя они не рассматривают точную проблему вопроса, они могут быть полезны для будущих пользователей. – xpereta

0

Я получил эту ошибку, если это модифицируется в «сети» --- то ошибка вышла решена. (Мое понимание - Упакуйте указанное pickupdirectory опции, заголовок -Кодирование UTF-8 (base64) давал ошибку)

Надеется, что это помогает

Смежные вопросы