使用 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和c#从gmail中读取消息吗?
使用 PowerShell V2 的 Send-MailMessage 通过 Gmail 发送邮件