Python调用Gmail API发送简单邮件报invalidArgument错误如何解决
问题根因
报错是请求体结构不符合API要求导致的:你构造发送参数时多嵌套了一层message键,Gmail接口无法读取到顶层必填的raw字段,因此抛出参数非法错误。
调用Gmail v1的普通邮件发送接口(非上传附件模式)时,请求体需要直接传入包含raw字段的对象,raw对应值为urlsafe base64编码后的完整RFC822格式邮件内容,不需要额外包裹message层级。
修复方案
找到代码中构造create_message的段落,删除多余的嵌套层级即可。
原有错误代码:
create_message = { 'message': { 'raw': encoded_message } }
修改为:
create_message = { 'raw': encoded_message }
注意事项
- 如果修改过
SCOPES权限范围,需要先删除本地目录下的token.json文件,重新运行代码完成OAuth授权后再测试,否则会出现权限不足问题。 - 测试时需要将代码中占位的
sender@gmail.com替换为你授权账号的真实Gmail地址,recipient@gmail.com替换为有效收件人地址,否则会触发地址无效错误。
内容的提问来源于stack exchange,提问作者yann
相关产品推荐
相关产品推荐

