使用 Powershell 从 GMAIL API 获取消息正文

Posted

技术标签:

【中文标题】使用 Powershell 从 GMAIL API 获取消息正文【英文标题】:Getting message body from GMAIL API using Powershell 【发布时间】:2018-07-06 20:17:31 【问题描述】:

我已成功使用 Powershell 连接到 GMAIL API。 但是,我很难找到获取消息正文的位置。

根据 GMAIL 的文档: https://developers.google.com/gmail/api/v1/reference/users/messages/get

它应该在 Payload 属性下: 获取https://www.googleapis.com/gmail/v1/users/userId/messages/id

这是我运行的:

Invoke-WebRequest -Uri "https://www.googleapis.com/gmail/v1/users/me/messages/$($id)?access_token=$accesstoken&format=full" -Method Get | ConvertFrom-Json | select -ExpandProperty payload

这是我返回的示例:

查看属性,我似乎没有找到任何靠近邮件正文的东西。我错过了什么?

【问题讨论】:

如果成功,此方法在响应正文中返回一个 Users.messages 资源。 他们有一个 dotnet 库,继续使用它。 【参考方案1】:

最终我找到了我想要的东西。 事实证明,谷歌在 Base64 中对正文进行编码。这也在对象集合的层层之下。

$test = Invoke-WebRequest -Uri "https://www.googleapis.com/gmail/v1/users/me/messages/$($id)?access_token=$accesstoken&format=full" -Method Get | ConvertFrom-Json
$body = $test.payload.parts[0].parts.body.data[0] | Out-String
$d = $body.Replace(‘-‘,’+’).Replace(‘_’,’/’)
[String]$e = [System.Text.Encoding]::Ascii.GetString([System.Convert]::FromBase64String($d))
$e

【讨论】:

以上是关于使用 Powershell 从 GMAIL API 获取消息正文的主要内容,如果未能解决你的问题,请参考以下文章

使用 Gmail API 从 Gmail 下载附件

我可以使用gmail api和c#从gmail中读取消息吗?

使用 PowerShell V2 的 Send-MailMessage 通过 Gmail 发送邮件

使用 IMAP(javamail API)从 gmail 访问电子邮件

使用 Go 从 Gmail API 解码消息正文

在python中使用gmail api从电子邮件中提取表格