代码之家  ›  专栏  ›  技术社区  ›  ytu

使用带有API密钥的Gmail API从我的地址发送带有附件的电子邮件

  •  0
  • ytu  · 技术社区  · 7 年前

    我修改了文件 CreateMessageWithAttachment 上的Python代码 Users.messages: send . 唯一的区别是我回来了 {'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密钥是正确的,并且允许调用gmailapi。

    一个类似的问题是 How to access a gmail account I own using Gmail API? ,但作为一个本地的cronjob,我不知道如何像答案建议的那样“在Google注册我的应用程序”。

    0 回复  |  直到 7 年前
    推荐文章