6

MailAddress を使用して FAX メールを作成しています。SatisFAXtion v 8.6 というシステムを使用しています。FAX 用の送付状を提供するために、mail.TO アドレスにテンプレートの場所を追加できます。

フォーマットは次のようになります。

12125551234^template=cp\\FAXReportCover.rtf@fax.ourcompanymail.com

コンパイルすると問題なく動作しますが、バックスラッシュが 2 つ必要なので、エスケープ文字としてさらに 2 つ追加しました。

プログラムを実行すると、例外が発生します。

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

3 に答える 3

4

ウィキペディアから:

特殊文字の制限は、引用符の間に含まれている場合にのみ使用する必要があり、そのうちの 3 つ (スペース、バックスラッシュ \ および引用符 " (ASCII: 32, 92, 34)) の前にバックスラッシュを付ける必要があることです。 \ (例: "\ \\"")。

したがって、引用符の間にバックスラッシュが含まれていないため、あなたのメール アドレスは有効ではないと思います。

のようなアドレスに変更し12125551234^template="cp\\"FAXReportCover.rtf@fax.ourcompanymail.comていただければ大丈夫だと思います。

于 2012-04-26T13:54:58.310 に答える
3

何年も前に、同様の問題に対する回避策を見つけました。この問題は、MailAddress のコンストラクターの DisplayName パラメーターにありました。

多分それもあなたを助けるでしょう:

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

于 2012-04-26T13:55:51.367 に答える
0

これを「ネットワーク」に変更すると、このエラーを受け取りました --- その後、エラーは解決されました。(私の理解は-指定されたpickupdirectoryオプションの場合、ヘッダー-encoding utf-8(base64)がエラーを出していたことです)

それが役に立てば幸い

于 2014-08-20T13:51:46.827 に答える