Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#格式的附件创建草稿的示例?_C#_Gmail Api - Fatal编程技术网

使用C#格式的附件创建草稿的示例?

使用C#格式的附件创建草稿的示例?,c#,gmail-api,C#,Gmail Api,我已经用C语言编写了一个测试应用程序,它使用新的Gmail API创建了一个草稿消息。当邮件没有附件时,它可以正常工作 我将从IMAP API开始,并将MailBee.NET组件与该API一起使用。MailBee.NET组件包括一个生成RFC 2822消息的类,因此我重复使用了这个类,并对消息进行了Base64编码,并将其分配给“Raw”属性,如下所述: 当未添加附件时,它可以正常工作,但当添加附件时,它会以500响应失败: { "error": { "errors": [ {

我已经用C语言编写了一个测试应用程序,它使用新的Gmail API创建了一个草稿消息。当邮件没有附件时,它可以正常工作

我将从IMAP API开始,并将MailBee.NET组件与该API一起使用。MailBee.NET组件包括一个生成RFC 2822消息的类,因此我重复使用了这个类,并对消息进行了Base64编码,并将其分配给“Raw”属性,如下所述:

当未添加附件时,它可以正常工作,但当添加附件时,它会以500响应失败:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "backendError",
    "message": "Backend Error"
   }
  ],
  "code": 500,
  "message": "Backend Error"
 }
}
有人能提供一个使用.NETAPI的例子吗?API页面上的示例非常简单,没有提供太多有用的信息,文档也不是很好。可能最好使用.NET客户端附带的Message/MessagePart/MessagePartBody类,但是我找不到任何关于它们使用的明确指导或示例,因此不知道从哪里开始

问题:

1) 任何人都可以提供一些使用.NET客户端中的类创建带有附件的草稿消息的示例代码吗

2) 是否可以附加多个文件?整个文档只涉及一个文件,而多部分指南只涉及两个部分:元数据和附件。

提供一个您正在上载的“原始”字段示例肯定有助于调试(base64编码或直接)

然而,这听起来与:

关于这一点: m、 Raw=Convert.ToBase64String(msg.GetMessageRawData())

您要确保使用的是“web安全”(也称为“url安全”)base64编码字母表

正如您提到的URL中的文档所述: """ 应用程序可以使用drafts.create方法创建草稿。一般过程是:

创建符合RFC 2822的MIME消息。 将消息转换为URL安全的base64编码字符串。 创建草稿,将drafts.message.raw字段的值设置为编码字符串。 “”“


Google API使用的

与Gmail Guy提到的另一个问题的海报非常相似,它已经神奇地在一夜之间开始工作。所以这一定是Gmail的问题

关于:

m.Raw = Convert.ToBase64String(msg.GetMessageRawData());
谢谢你的提醒;我以前确实对它进行了编码,但在尝试20种不同的方法使其工作时,我删除了它,忘记了将其重新添加进去


另外,要确认:是的,当您使用原始消息方法时,您可以添加多个附件。

“很可能我错误地使用了message/MessagePart/MessagePartBody类。”让我们看看您是如何使用它们的。很高兴它现在能为您工作,感谢您的确认。不用说,肯定有Gmail用户在观看堆栈溢出的bug报告!:)我猜
msg.GetMessageRawData()
来自您提到的MailBee.NET组件?真的没有别的办法吗?
m.Raw = Convert.ToBase64String(msg.GetMessageRawData());