使用 Python 和 Gmail API 将电子邮件标记为已读
Marking Emails as Read Using Python and Gmail API
我正在编写一个脚本,它从电子邮件收件箱获取消息,检查消息的主题,有条件地打印 .pdf 附件,然后将消息标记为 read
。
我可以阅读消息,打印 .pdf 文件条件,但无法将消息标记为 read
。
我正在尝试使用以下函数来标记为 read
:
def markEmailAsRead(service, message):
service.users().messages().modify()(userId='me', id=message['id'], body={'removeLabelIds': ['UNREAD']}).execute()
这与我浏览过的每个网站都一样,但我收到以下错误:
Traceback (most recent call last):
File "path/main.py", line 110, in <module>
main()
File "path/main.py", line 64, in main
mapHeaders(service=service, message=m)
File "path/main.py", line 78, in mapHeaders
markEmailAsRead(service=service, message=message)
File "path/main.py", line 107, in markEmailAsRead
service.users().messages().modify()(userId='me', id=message['id'], body={'removeLabelIds': ['UNREAD']}).execute()
File "path\discovery.py", line 972, in method
raise TypeError('Missing required parameter "%s"' % name)
TypeError: Missing required parameter "userId"
Process finished with exit code 1
我也按照这里的最后一个答案 - How to mark messages as read using gmail api as i parse? 但我仍然遇到同样的错误...
我过去没有使用过 Gmail API,但是我相信你在这里犯了一个简单的错误:
File "path/main.py", line 107, in markEmailAsRead
service.users().messages().modify()(userId='me', id=message['id'], body={'removeLabelIds': ['UNREAD']}).execute()
您已尝试传递正确的参数,但是您在与修改方法相关的括号之外进行了传递,并且不小心添加了一组额外的括号。
修改后的代码为:
service.users().messages().modify(userId='me', id=message['id'], body={'removeLabelIds': ['UNREAD']}).execute()
我可能是错的,但这是我通过快速阅读可以得出的结论。
我正在编写一个脚本,它从电子邮件收件箱获取消息,检查消息的主题,有条件地打印 .pdf 附件,然后将消息标记为 read
。
我可以阅读消息,打印 .pdf 文件条件,但无法将消息标记为 read
。
我正在尝试使用以下函数来标记为 read
:
def markEmailAsRead(service, message):
service.users().messages().modify()(userId='me', id=message['id'], body={'removeLabelIds': ['UNREAD']}).execute()
这与我浏览过的每个网站都一样,但我收到以下错误:
Traceback (most recent call last):
File "path/main.py", line 110, in <module>
main()
File "path/main.py", line 64, in main
mapHeaders(service=service, message=m)
File "path/main.py", line 78, in mapHeaders
markEmailAsRead(service=service, message=message)
File "path/main.py", line 107, in markEmailAsRead
service.users().messages().modify()(userId='me', id=message['id'], body={'removeLabelIds': ['UNREAD']}).execute()
File "path\discovery.py", line 972, in method
raise TypeError('Missing required parameter "%s"' % name)
TypeError: Missing required parameter "userId"
Process finished with exit code 1
我也按照这里的最后一个答案 - How to mark messages as read using gmail api as i parse? 但我仍然遇到同样的错误...
我过去没有使用过 Gmail API,但是我相信你在这里犯了一个简单的错误:
File "path/main.py", line 107, in markEmailAsRead
service.users().messages().modify()(userId='me', id=message['id'], body={'removeLabelIds': ['UNREAD']}).execute()
您已尝试传递正确的参数,但是您在与修改方法相关的括号之外进行了传递,并且不小心添加了一组额外的括号。
修改后的代码为:
service.users().messages().modify(userId='me', id=message['id'], body={'removeLabelIds': ['UNREAD']}).execute()
我可能是错的,但这是我通过快速阅读可以得出的结论。