如何使用System.Net.Mail向Google Apps发送包含大尺寸附件的邮件?

时间:2010-05-19 11:46:02

标签: c# attachment large-files system.net.mail

我正在尝试发送大尺寸附件的邮件(1MB,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应用时我遇到的异常是: {“请求已中止:请求已取消。”}

Question on Google Forum

4 个答案:

答案 0 :(得分:2)

一种解决方案可能是使用多部分zip(或支持类似概念的其他压缩格式)文件,并在单独的电子邮件中发送每个文件。

至少,GZip也支持多部分压缩,但我不认为zip或gz在.NET中对多部分文件有很好的支持。

你最好的选择可能是#ziplib

答案 1 :(得分:0)

如果您尝试发送,例如一个2MB的WMV文件和你的邮件网关只允许~500kb的附件,这只是不起作用。您不能随意拆分WMV文件 - 电子邮件收件人需要使用相同的软件来“加入”备件。

有一些存档实用程序(如WinRAR)允许您创建分割为可配置大小的块的存档。然后,您可以在一封电子邮件中发送大量附件,或者使用单个附件发送大量电子邮件。

更简单的解决方案是将文件上传到某个位置并在电子邮件中放置一个链接以便稍后下载该文件。这可能是你自己的HTTP或FTP服务器,或者有很多第三方服务让你这样做,YouSendIt似乎很受欢迎。

答案 2 :(得分:0)

我知道这不是一个答案,但在我的测试中,我能够发送大小不超过3MB的附件。您确定没有遇到smtp主机对出站附件大小施加的限制吗?

答案 3 :(得分:0)

在每个人进行疯狂的追逐之前,原始海报是否可以发布他们看到的异常文本?

这可以是从Web服务器超时到不接受大附件的邮件服务器到没有适当权限的任何内容。

如果没有看到异常文本和堆栈跟踪,这些vauge问题可能会徒劳无功。

不要试图粗鲁或任何事情,但问题提供的信息越多,回答就越容易。