如何使用Python和Microsoft Graph API发送超过4MB的电子邮件附件

2024-06-02 08:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在网上滚动,包括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=httphttps://docs.microsoft.com/en-us/graph/api/attachment-createuploadsession?view=graph-rest-beta&tabs=http。然而,这些文档都不是为Python程序员编写的,更不用说初学者/中级用户了,所以很快就迷路了。我有点理解这个问题。请求不能大于4MB,因此我需要迭代我的上传。我对python中的for循环有一定的了解,但是,我还没有发现如何将此文档应用到我的特定用例中。如果有人可以帮助/曾经在Python中做过类似的事情,请让我知道!任何帮助都将不胜感激。谢谢


Tags: 文档httpscomclientapiid附件secret
1条回答
网友
1楼 · 发布于 2024-06-02 08:29:58

添加代码示例:

#!/usr/bin/python
print "GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var attachmentItem = new AttachmentItem{
AttachmentType = AttachmentType.File,
Name = \"flower\",
Size = 3483322 }; 
await graphClient.Me.Messages[\"AAMkADI5MAAIT3drCAAA=\"].Attachments
.CreateUploadSession(attachmentItem)
.Request()
.PostAsync();\n";

相关问题 更多 >