系统.解码Gmail邮件的原始字段

本文关键字:原始 字段 解码 Gmail 系统 | 更新日期: 2023-09-27 18:16:09

我正在尝试解码消息。像这样的原始字段:

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

但是我得到了一个System.FormatException

我在这里错过了什么?有必要做一些额外的步骤吗?谢谢。

**Edit:**留言。原始内容太大了,所以我上传了一个例子。

系统.解码Gmail邮件的原始字段

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);
}

这是因为消息。Raw格式不正确。我在这篇文章中找到了解决办法。