Google api 如何使用.NET API客户端库从Gmail发送包含多个附件的电子邮件

Google api 如何使用.NET API客户端库从Gmail发送包含多个附件的电子邮件,google-api,gmail-api,google-api-dotnet-client,Google Api,Gmail Api,Google Api Dotnet Client,我的应用程序用于发送带有附件的电子邮件 在使用时,当涉及到附件的文件大小时,我面临一些限制。所以,我想切换到as上传方法可能会有所帮助。但这几乎是无证的。 查看源代码,我想使用可能是前进的方向,但我不知道如何正确使用它 因此,不要将文件附加到消息中并像这样调用它: var gmailResult = gmail.Users.Messages.Send(new Message { Raw = base64UrlEncodedMessage }, "me").Execute(); 我不应该

我的应用程序用于发送带有附件的电子邮件

在使用时,当涉及到附件的文件大小时,我面临一些限制。所以,我想切换到as上传方法可能会有所帮助。但这几乎是无证的。 查看源代码,我想使用可能是前进的方向,但我不知道如何正确使用它

因此,不要将文件附加到消息中并像这样调用它:

var gmailResult = gmail.Users.Messages.Send(new Message
{
    Raw = base64UrlEncodedMessage
}, "me").Execute();
我不应该将文件附加到消息,并执行以下操作

var gmailResult = gmail.Users.Messages.Send(new Message
{
    Raw = base64UrlEncodedMessage
}, "me", fileStream, contentType).Upload();
  • 第二个版本不返回任何API错误,但不执行任何操作。很明显,我遗漏了一些东西

  • 如何附加多个附件


  • 这是一个老生常谈的问题,但在这里给出一个答案,以防其他人需要它:

    我可以通过将mime消息转换为流(包括附件)来实现这一点,然后在发送时调用此重载:

    UsersResource.MessagesResource.SendMediaUpload googleSendRequest = service.Users.Messages.Send(null, "youremail@gmail.com", mimeMessageStream, "message/rfc822");
    IUploadProgress created = googleSendRequest.Upload();
    
    这将上载包含电子邮件内容的所有附件,然后将其发送出去。我能够在一封电子邮件中发送两个5兆字节的附件。以前,我甚至无法通过另一个接收base64编码mime消息的发送方法发送其中的一个消息