【问题标题】:How to send an email with multiple attachments from Gmail using API client library for .NET如何使用 .NET 的 API 客户端库从 Gmail 发送包含多个附件的电子邮件
【发布时间】:2017-03-07 09:34:34
【问题描述】:

我的应用使用Google API client library for .NET 发送带有附件的电子邮件。

使用Send() 时,我在附件的文件大小方面面临一些限制。所以,我想切换到Resumable upload 作为上传方法可能会有所帮助。但它几乎没有记录。 查看源代码,我想使用different Send() overload 可能是前进的方向,但我不知道如何正确使用它。

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

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();
  1. 第二个版本不返回任何 API 错误,但什么也不做。我显然在这里遗漏了一些东西。

  2. 如何附加多个附件?

【问题讨论】:

    标签: google-api gmail-api google-api-dotnet-client


    【解决方案1】:

    这是一个古老的问题,但在这里提供一个答案以防其他人需要它:

    我能够通过将我的 mime 消息转换为流(包括附件),然后在 Send 上调用此重载来实现此目的:

    UsersResource.MessagesResource.SendMediaUpload googleSendRequest = service.Users.Messages.Send(null, "youremail@gmail.com", mimeMessageStream, "message/rfc822");
    IUploadProgress created = googleSendRequest.Upload();
    

    这将上传包含电子邮件内容的所有附件,然后将其发送出去。我能够在电子邮件中发送两个 5 兆字节的附件。以前,我什至无法通过其他接收 base64 编码的 mime 消息的 Send 方法发送其中一个。

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 2016-05-24
      • 2020-05-13
      • 1970-01-01
      • 2018-09-11
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-02-18
      相关资源
      最近更新 更多