首页 > 解决方案 > 使用带有 API 密钥的 Gmail API 从我的地址发送带有附件的电子邮件

问题描述

我在Users.messages: send上修改了演示的CreateMessageWithAttachmentPython 代码。唯一的区别是我返回而不是因为后者实际上导致了错误。{'raw': base64.urlsafe_b64encode(message.as_bytes()).decode("UTF-8")}{'raw': base64.urlsafe_b64encode(message.as_string())}

之后,我尝试向自己发送一封带有附件的电子邮件:

userID = my_email_address
API_KEY = my_api_key
# my_api_key was generated under my_email_address on GCP

email_content = CreateMessageWithAttachment(userID, userID, "Test API", "This is a test.", file_dir, filename)
r = requests.post(
    url="https://www.googleapis.com/gmail/v1/users/{}/messages/send?key={}".format(userID, API_KEY),
    data=json.dumps(email_content)
)

if r.status_code == 200:
    print("Succeed!")
else:
    print(r.status_code)

我现在收到 401 作为状态码,这似乎是一个授权问题。但是,我不知道从哪里开始解决这个问题。我确定 API 密钥是正确的,并且允许调用 Gmail API。

关于 SO 的一个类似问题是如何使用 Gmail API 访问我拥有的 gmail 帐户?,但是作为本地 cronjob,我不知道如何像建议的答案那样“在 Google 注册我的应用程序”。

标签: pythongoogle-cloud-platformgmail-api

解决方案


推荐阅读