当前位置: 首页 > 知识库问答 >
问题:

请求电子邮件审核导出失败,状态为400且“文件过早结束”

汪高岑
2023-03-14

根据https://developers.google.com/admin-sdk/email-audit/#creating_a_mailbox_for_export我试图通过以下方式请求G Suite中用户的电子邮件审核导出:

def requestAuditExport(account):
    credentials = getCredentials()
    http = credentials.authorize(httplib2.Http())
    url = 'https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/helpling.com/'+account
    status, response = http.request(url, 'POST', headers={'Content-Type': 'application/atom+xml'})
    print(status)
    print(response)

我得到以下结果:

{'content-long':'22','timeier':'Tue,13 Dec2016 14:19:37GMT','date':'Tue,13 Dec2016 14:19:37GMT','x-frame-选项':'SAMEORIGIN','transport-编码':'chunked','x-xss-protected':'1; mode=block','content-type':'text/html; charset=UTF-8','x-content-type-选项':'nosnff','-content-编码':'gzip','server':'GSE','status':'400','cache-Control':'Private, max-age=0','alt-svc':'quic=": 443"; ma=2592000; v="35,34"}

b“文件过早结束。”

我看不出问题出在哪里,有人能给我一个提示吗?

提前感谢!

共有2个答案

洪经义
2023-03-14

好吧,找出问题所在,自己修复。最后看起来是这样的:

http = getCredentials().authorize(httplib2.Http())
url = 'https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/helpling.com/'+account
headers = {'Content-Type': 'application/atom+xml'}
xml_data = """<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'> \
                <apps:property name='includeDeleted' value='true'/> \
              </atom:entry>"""
status, response = http.request(url, 'POST', headers=headers, body=xml_data)

不确定是关于身体还是头部。它现在起作用了,我希望它能帮助其他人。

无论如何,谢谢你。

屈畅
2023-03-14

通过在“安全”下的“管理API管理API客户端访问”页面中插入管理控制台,并添加客户端ID和目录API所需的范围来修复此问题。有关详细信息,请查看此文档。

 类似资料:
  • 您能否解决在我的android应用程序中集成twitter登录时出现的问题。 问题如下: Twitter:未能获得请求令牌com.twitter.sdk.android.core.TwitterApiExcture: HTTP请求失败,状态: 400在com.twitter.sdk.android.core.Callback.on响应(Callback.java:42)在改造2.ExecutorC

  • 我正在使用Azure mobile services后端,我可以通过SendGrid成功地发送电子邮件。但是,每次我尝试添加附件时,它都失败了。我从来没有收到过邮件。经过一点研究,我发现我所需要的只是一个虚拟路径。我修改了路径名,但它仍然不工作。 我想不出为什么会失败。 下面是我的代码:

  • 我有一个web服务,它用需要签名的PDF创建Docusign信封。在我的测试环境中,创建信封后,我查询信封状态以及收件人状态。当使用API调用时,具有不良电子邮件地址的应答者的状态为“AutoResponse”。 现在,在我的Docusign Connect实现中,我有两个被击中的独立路由。一个用于电子邮件成功发送或请求完成时,另一个专门用于电子邮件传递失败。当我有一个路由时,没有一个收件人像返回

  • 我有一个网络应用程序,用户可以点击按钮下载PDF报告。 我的用户要求在下载PDF时立即将其作为电子邮件附件打开(有点像单击mailto锚时)。 这可能吗?我在想也许可以在幕后使用js生成锚定标记,但我读到mailto并不真正支持附件。 如果这很重要,PDF将使用PHP mPDF设置为下载输出模式在服务器端生成。

  • 我一直在用代表我的office365帐号发送SMTP邮件,工作了大概一个星期,然后突然不工作了,不知道怎么变了。 当我在PHPMailer中启用high debug logging时,我看到: SMTP- 这篇文章似乎是最相关的: 不接受来自服务器的身份验证:504 5.7.4无法识别的身份验证类型 以下是我交给PHPMailer的文字SMTP设置: 以及实际的PHP代码: 作为理智检查,我在中使

  • 我正在尝试登录一个网站(https://dashboard.ngrok.com/user/login)使用jsoup。我对GET请求没有任何问题,但当我尝试使用凭证执行POST请求时,我收到: HTTP错误获取URL。状态=400 我尝试为请求设置一个更好的头,使用我在连接发出POST请求时发送的相同参数。 我也尝试过这种类型的请求: 结果显示: 线程“main”组织中出现异常。jsoup。Htt