【发布时间】:2023-01-20 23:53:12
【问题描述】:
我正在尝试使用 python 包 yagmail 发送电子邮件,但很难获得工作授权。
我的问题是获取 Oauth 2 令牌,但与 yagmail 断开连接,如 github 线程中指定的那样。正如这篇文章 https://github.com/kootenpv/yagmail/issues/143 中所述,谷歌似乎没有提供格式正确的凭证文件。但是我尝试了很多东西,每一个都有自己的问题。
- 当我在 Google API 控制台中设置客户端 ID 时,下载 json 作为 credentials.json 并让系统创建 token.json, 事情到了一定程度:我通过谷歌被带到“选择一个 account, do you want to continue”并创建令牌。我能够 为 gmail 帐户打印标签。但是当我发出 yag.send(to='xxx@gmail.com', subject='测试 Yagmail', contents='Hurray, it worked!'), 我收到错误消息“TypeError: refresh_authorization() 得到了一个意外的关键字参数‘token’。” 当我查看令牌文件时,它确实包含密钥“令牌” 它不应该根据这篇 github 帖子https://github.com/kootenpv/yagmail/issues/143#issuecomment-527115298][2]。
- 如果我进入令牌并编辑它以反映预期 通过删除上面链接中标识的内容 未指定并在名称前加上“google_”前缀,出现错误 “ValueError:授权的用户信息不是预期的格式, 缺少字段 refresh_token、client_id、client_secret。”它没有 似乎喜欢“google_”前缀。
- 如上编辑没有“google_”前缀的令牌文件似乎 进一步产生不同的错误“发生错误: <请求时HttpError 403 https://gmail.googleapis.com/gmail/v1/users/me/labels?alt=json 返回“请求的身份验证范围不足”
我卡住了。 Oauth2 相对较新,但似乎其他人能够使用 yagmail。有没有我想念的把戏?我最初在 Github 上发帖是因为我发现了其他相关帖子,但似乎更适合问答。 Github 和 SO 之间有关系吗?区别?
感谢您的帮助, 布莱恩
【问题讨论】:
标签: python authentication oauth-2.0 yagmail