【发布时间】:2021-03-03 13:28:40
【问题描述】:
一直在浏览网页,包括 Stackoverflow 上的此处,但找不到我的问题的答案,所以我想知道是否有人知道如何提供帮助。我正在使用 Python 并设法让以下代码适用于我的应用程序。这个应用程序通过我的公司 O365 帐户发送电子邮件。它运行良好,可以发送电子邮件,还可以处理小附件(小于 4MB)。这里是:
from O365 import Account,MSGraphProtocol
client_ID = ''
secret = ''
credentials = (client_ID, secret)
protocol = MSGraphProtocol(api_version='beta')
account = Account(credentials,protocol=protocol)
m = account.new_message()
m.to.add('email@email.com')
m.subject = 'sCRIPT FOR AUTOMATION'
m.body = "This is a test!"
m.attachments.add('big_file.csv') #takes a list for multiple files. However, 4MB size limit.
m.send()
这一切都很好,但是,我需要它来处理更大的附件。我觉得我已经尝试了我能想到的一切来让它发挥作用,但是,没有任何成功。我在这里看到了一些文档,建议将协议更改为 MsGraphProtocol & api 版本为 beta(请参阅https://pypi.org/project/O365/),但我尝试过但没有成功。我已经阅读了很多关于这个问题的内容,微软似乎意识到了这一点,但他们声称有一个解决方案,即创建一个上传会话并分块上传我的较大文件?我不知道从哪里开始。我尝试查看此文档 https://docs.microsoft.com/en-us/graph/outlook-large-attachments?tabs=http 和 https://docs.microsoft.com/en-us/graph/api/attachment-createuploadsession?view=graph-rest-beta&tabs=http。但是,这些文档都不是为 Python 程序员编写的,更不用说初学者/中级用户了,所以很快就迷路了。我有点明白这个问题。该请求不能大于 4MB,因此我需要迭代我的上传。我对 python 中的 for 循环有所了解,但是,我还没有发现如何将这个文档应用到我的特定用例中特别清楚。如果有人可以帮助/以前在 Python 中做过类似的事情,请告诉我!任何帮助将不胜感激。谢谢!
【问题讨论】:
-
正确的做法是将文件放在网站上的某个地方并通过电子邮件发送链接。 OneDrive、DropBox、Confluence;您必须以某种方式访问文件共享服务。分块发送大文件颠覆了限制电子邮件大小的整个目的。
-
添加我上次尝试过的python代码(在答案下面,因为这里的格式不是代码的格式)..检查它是否适合你。
标签: python microsoft-graph-api microsoft-graph-mail