适用于大型附件的Google Apps例外

时间:2010-09-21 10:18:30

标签: java google-app-engine

我正在尝试发送大小附件为2MB的邮件。但是发送邮件失败了(发送到Google Apps):

MailItemEntry[] entries = new MailItemEntry[1];
String EmlPath = "C:\\testemail.eml";                                        
String msg = File.ReadAllText(EmlPath);
entries[0] = new MailItemEntry();
entries[0].Rfc822Msg = new Rfc822MsgElement(msg);

将此EML迁移到Google应用时我遇到的例外情况是:{"The request was aborted: The request was canceled."}

2 个答案:

答案 0 :(得分:1)

根据Java Mail API Page电子邮件(包括附件)的大小限制为1MB。


编辑:更新......

从我所看到的情况来看,1 MB是他们的硬性和快速限制......无论你是否付钱都无所谓。 (但是,我可能错了,您可能想与客户服务部门联系。)作为替代方案,您可能会尝试找到一个将文件上传到免费文件上传服务的API(只是一目了然,我发现了这个api for uploading to sendspace,虽然我不知道它有多好。然后,您可以包含API可能会返回的链接。

那说,看得更深入,我开始感到困惑。您已经标记了您的问题Java,它适用于使用Java的Google App Engine,但是您使用的是File.ReadAllText,据我所知,它不是Java函数,但肯定会出现在C#文档中。

另外,令我困惑的另一件事是,据我所知,您不能使用Google App Engine访问文件系统,但您不仅要访问文件系统,还要访问硬编码的绝对路径。至少,我认为你使用的文件必须在war文件中,但我没有亲自使用过GAE,所以我不知道。

此外,正在使用的语法与我在Google App Engine Java Mail Tutorial上看到的语法不同。

所以你可能想看一下。

编辑:

或者更好的解决方案(如下面Jason Hall所建议的)对外部文件上传API,将使用blobstore并通过电子邮件发送链接。 (虽然这可能会导致配额限制出现问题,具体取决于您通过电子邮件发送的人数。)

答案 1 :(得分:0)

很抱歉因为我是stackoverflow的新手而感到困惑。

我正在用C#.net开发一个应用程序 我从应用程序路径读取eml文件,然后添加以下代码

String msg = File.ReadAllText(EmlPath); entries [0] = new MailItemEntry(); 条目[0] .Rfc822Msg = new Rfc822MsgElement(msg);

我肯定会尝试Jason建议的解决方案,并为您提供最新信息。

感谢所有人。