首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Gmail消息转换为OpenPop Mime消息

将Gmail消息转换为OpenPop Mime消息
EN

Stack Overflow用户
提问于 2015-05-15 20:27:34
回答 1查看 1.2K关注 0票数 1

是否可以将Gmail消息转换为OpenPop Mime消息?

目前,我有:

代码语言:javascript
复制
List<Message> messagesList = new List<Message>();
List<string> rawMessagesList = new List<string>();
foreach(Message m in messages)
{
    Message m2 = service.Users.Messages.Get("me", m.Id).Execute();
    string m3 = service.Users.Messages.Get("me", m.Id).Execute().Raw;
    messagesList.Add(m2);
    rawMessagesList.Add(m3);
} 

string rMessage = rawMessagesList[0];
byte[] byteMessage = Encoding.ASCII.GetBytes(rMessage);

OpenPop.Mime.Message openPopMessage = new OpenPop.Mime.Message(byteMessage);
string newStringMessage = FindPlainTextInMessage(openPopMessage);
Console.Read();

不幸的是,它返回的只是什么都没有,因为原始请求返回为null。是否存在范围要求,或者gmail没有返回原始消息的其他原因?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-15 21:51:49

要获得原始字符串,需要在GetRequest中指定原始格式。

代码语言:javascript
复制
var emailRequest = svc.Users.Messages.Get("userId", "id");
emailRequest.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw;

var rawString = emailRequest.Execute().Raw;

此时,rawString是一个base64url编码的字符串。在编码为字节之前,必须将其转换为普通字符串(请参阅https://datatracker.ietf.org/doc/html/draft-ietf-jose-json-web-signature-08#appendix-C):

代码语言:javascript
复制
private static byte[] Base64UrlDecode(string arg)
{
    // Convert from base64url string to base64 string
    string s = arg;
    s = s.Replace('-', '+').Replace('_', '/');
    switch(s.Length % 4)
    {
        case 0:
            break;              // No pad chars in this case
        case 2:
            s += "==";
            break;              // Two pad chars
        case 3:
            s += "=";
            break;              // One pad char
        default:
            throw new Exception("Illegal base64url string!");
    }

    return Convert.FromBase64String(s);
}

然后可以使用Base64UrlDecode的结果来创建OpenPop MIME消息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30268191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档