1

次のように message.Raw フィールドをデコードしようとしています。

byte[] mailContent = Convert.FromBase64String(message.Raw);

しかし、私はSystem.FormatException.

ここで何が欠けていますか?追加の手順を実行する必要がありますか? ありがとう。

**編集:** message.Raw コンテンツが大きすぎてここに投稿できないため、をアップロードしました。

4

2 に答える 2

3

message.RawフィールドはBase64エンコードされるだけでなく、エンコードURL-safeされます。

この質問を見てください: 変更された base64 URL をデコード/エンコードするためのコード

上記のリンクから取得した元のコード:

///<summary>
/// Base 64 Encoding with URL and Filename Safe Alphabet using UTF-8 character set.
///</summary>
///<param name="str">The origianl string</param>
///<returns>The Base64 encoded string</returns>
public static string Base64ForUrlEncode(string str)
{
    byte[] encbuff = Encoding.UTF8.GetBytes(str);
    return HttpServerUtility.UrlTokenEncode(encbuff);
}
///<summary>
/// Decode Base64 encoded string with URL and Filename Safe Alphabet using UTF-8.
///</summary>
///<param name="str">Base64 code</param>
///<returns>The decoded string.</returns>
public static string Base64ForUrlDecode(string str)
{
    byte[] decbuff = HttpServerUtility.UrlTokenDecode(str);
    return Encoding.UTF8.GetString(decbuff);
}
于 2014-08-01T11:03:31.063 に答える